症状
假定您在您的计算机上应用了 Microsoft Visual Studio 2012 更新 4。某些 C 或 c + + 源代码编译时代码一起使用/Ox (完全优化)、 /Oxt,或/O2 (最大速度) 和您等优化编译器选项目标 x64 平台,您可能会收到以下错误消息︰
致命错误 C1001︰ 编译器中发生内部错误。
注意是否在函数调用中,使用数组的结构或类,并且在函数调用中使用的第一个元素的数组的第一个字段,可能会出现问题。请参阅下面的示例︰S* arr = …func1(arr, …) func2(arr->firstField, …)
解决方案
修补程序信息
可以从 Microsoft 获得受支持的修复程序。然而,此修补程序仅用于解决本文中描述的问题。仅对出现这一特定问题的系统应用此修补程序。
如果此修复程序可供下载,则在此知识库文章顶部"提供修补程序下载"部分。如果未显示此部分,将申请提交到 Microsoft 客户服务和支持,以获取此修复程序。 注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。对于不符合此特定的修补程序的其他支持问题和事项将照常收取费用。有关 Microsoft 客户服务和支持电话号码或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站︰http://support.microsoft.com/contactus/?ws=support注意:"修补程序下载可用"窗体显示获取此修复程序的语言。如果看不到您的语言,则修补程序没有那种语言的版本。
系统必备组件
若要应用此修补程序,您必须具有 Microsoft Visual Studio 2012 更新 4 安装。
重启要求
您可能需要重新启动计算机,如果受影响的文件未被使用在安装时安装此修复程序后。我们建议您在安装此修复程序之前关闭所有 Visual Studio 2010 相关的组件。
解决方法
若要变通解决此问题,请使用/O1 (最小化大小) 优化编译器选项,或禁用优化使用/Od (停用)。
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。