Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

Síntomas

Utilice la opción del compilador /Ot (favorecer código rápido) cuando se genera una aplicación que está configurada en el x64 plataforma en Microsoft Visual Studio 2005 Service Pack 1 (SP1). Cuando se ejecuta la aplicación, algunas instrucciones Si funcionen incorrectamente. Por lo tanto, los resultados son impredecibles. Por ejemplo, se pueden omitir las instrucciones if en el código generado de la aplicación.

Este problema sólo se produce en la situación siguiente.

  • Hay algunas instrucciones MOV entre dos operaciones de comparación.

  • Estos comparan operaciones uso los mismos operandos.

  • Los valores de los operandos se cambian por las instrucciones de MOV.

En este escenario, pueden omitirse las instrucciones if en la segunda operación de comparación.

Notas:

  • Este problema también puede producirse cuando utiliza la opción/O2 o /Ox para generar la aplicación.

  • Este problema no ocurre en el x86 plataforma.

Causa

Este problema se produce porque el optimizador de compilador incorrectamente se supone que el indicador establecido por la operación XOR puede utilizarse sin incluir una operación de comparación.

Solución

Información de la revisión

Existe un hotfix disponible desde Microsoft. Sin embargo, esta revisión se diseñó para corregir únicamente el problema que se describe en este artículo. Aplique esta revisión solamente a sistemas que experimenten el problema descripto en este artículo. Esta revisión podría ser sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere a la próxima actualización de software que contenga este hotfix.

Si la revisión está disponible para su descarga, hay una sección de "Descarga de revisión disponible" en la parte superior de este artículo de Knowledge Base. Si esta sección no aparece, póngase en contacto con el servicio al cliente de Microsoft y soporte técnico para obtener la revisión.

Nota: Si se producen problemas adicionales o si se requiere cualquier otra solución, será necesario crear una solicitud de revisión independiente. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no califican para esta revisión específica. Para obtener una lista completa de los números de teléfono de servicio al cliente de Microsoft o para crear una solicitud de servicio independiente, visite el siguiente sitio Web de Microsoft:

http://support.microsoft.com/contactus/?ws=supportNota: El formulario de "Descarga de Hotfix disponible" muestra los idiomas para los que el Hotfix está disponible. Si no ve su idioma, es porque no hay una revisión para ese idioma.

Requisitos previos

Debe tener el Visual Studio 2005 Service Pack 1 instalado para aplicar esta revisión.

Requisito de reinicio

No es necesario que reinicie el equipo después de aplicar este hotfix.

Información de reemplazo de revisión

Este hotfix no sustituye a otras revisiones.

Información de archivo

La versión en inglés de esta revisión tiene los atributos de archivo (o atributos del archivo más reciente) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha Zona horaria en el elemento de Fecha y hora del Panel de control.

Nombre del archivo

Versión del archivo

Tamaño de archivo

Fecha

Hora

Plataforma

C2.dll

14.0.50727.3080

2,273,280

19 de noviembre de 2008

18:52

x86

C2.dll

14.0.50727.3080

7,192,576

19 de noviembre de 2008

23:25

IA-64

C2.dll

14.0.50727.3080

2,490,368

19 de noviembre de 2008

23:26

x86

C2.dll

14.0.50727.3080

3,600,384

19 de noviembre de 2008

23:33

x64

C2.dll

14.0.50727.3080

2,203,648

19 de noviembre de 2008

23:33

x86

Solución alternativa

Para evitar este problema, utilice uno de los métodos siguientes:

  • Utilice la palabra clave volatile al declarar las variables que se utilizan en las instrucciones if .

  • Deshabilitar la opción de optimización de velocidad. Por ejemplo, puede reemplazar la opción /Ot con la opción /Os (favorecer código pequeño) . O bien, utilice la opción/O1 en lugar de la opción/O2 o /Ox .

  • Agregar una línea de código antes de las instrucciones if en la segunda operación de comparación. Por ejemplo, agregue una instrucción printf .

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información

Para obtener más información sobre el código de una o más instrucciones pueden ejecutarse incorrectamente cuando usa la característica de optimización de código en Visual Studio 2005, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

925792 una o varias instrucciones de código pueden ejecutarse incorrectamente cuando usa la característica de optimización de código en Visual Studio 2005

Para obtener más información acerca de la terminología de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

824684 descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×