Sintomas
Considere o seguinte cenário:
-
Você desenvolve um aplicativo Microsoft Visual C++ 2010 que usa membros de campo de bits em uma struct no Microsoft Visual Studio 2010.
-
Ativar uma opção de compilador de otimização para o aplicativo e, em seguida, você constrói o aplicativo.
-
Execute o aplicativo.
Nesse cenário, código de máquina incorreto pode ser gerado para determinadas operações de membro do campo de bit na estrutura.
Resolução
Informações sobre o hotfix
Um hotfix suportado está disponível agora na Microsoft. No entanto, destina-se a corrigir somente o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico.
Para resolver esse problema, contate o Atendimento Microsoft para obter o hotfix. Para obter uma lista completa dos números de telefone do Atendimento Microsoft e informações sobre custos de suporte, visite o seguinte site da Microsoft:
http://support.microsoft.com/contactus/?ws=supportObservação: em alguns casos, as taxas cobradas para chamadas de suporte podem ser canceladas caso um profissional de Suporte da Microsoft determine que uma atualização específica resolverá o problema. Os custos normais de suporte serão aplicados para questões de suporte adicionais e problemas que não se qualificam à atualização específica em questão.
Pré-requisitos:
Para aplicar esse hotfix, você deve ter o Microsoft Visual Studio 2010 SP1 instalado.
Requisitos de reinicialização:
Você não precisa reiniciar o computador após instalar o hotfix se os arquivos afetados não estão sendo usados no momento da instalação. Recomendamos que você feche todos os componentes relacionados ao Visual Studio 2010 antes de instalar o hotfix.
A versão global deste hotfix apresenta os atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas na Hora Universal Coordenada (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para localizar a diferença entre o UTC e a hora local, use a guia Fuso Horário no item Data e Hora no Painel de Controle.
Nome do Arquivo |
Versão do arquivo |
Tamanho do arquivo |
Data |
Hora |
Plataforma |
Caminho |
---|---|---|---|---|---|---|
C2.dll |
16.0.40219.449 |
2,606,728 |
18-Apr-2013 |
18:09 |
x86 |
Microsoft Visual Studio 10.0\VC\bin |
C2.dll |
16.0.40219.449 |
2,493,576 |
19-Apr-2013 |
21:19 |
x86 |
Microsoft Visual Studio 10.0\VC\bin\x86_amd64 |
C2.dll |
16.0.40219.449 |
2,593,928 |
19-Apr-2013 |
21:19 |
x86 |
Microsoft Visual Studio 10.0\VC\bin\x86_ia64 |
C2.dll |
16.0.40219.449 |
2,960,008 |
19-Apr-2013 |
21:19 |
x64 |
Microsoft Visual Studio 10.0\VC\bin\amd64 |
Status
A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".
Solução alternativa
Para contornar esse problema, use um dos seguintes métodos:
-
Use a opção de compilador de otimizaçãoOd /para desativar a otimização.
-
Use o pragma otimizar para ativar ou desativar a otimização em cada função a função.
-
Atualização para o Microsoft Visual Studio 2012.
Referências
Para obter mais informações sobre o pragma otimizar , vá para o seguinte site da MSDN:
Informações gerais sobre o pragma otimizarPara obter mais informações sobre opções de otimização /O , vá para o seguinte site da MSDN: