Microsoft로 로그인
로그인하거나 계정을 만듭니다.
안녕하세요.
다른 계정을 선택합니다.
계정이 여러 개 있음
로그인할 계정을 선택합니다.

증상

에 x64 구성 되어 있는 응용 프로그램을 빌드할 때 /Ot (코드 속도 우선) 컴파일러 옵션을 사용 하면 Microsoft Visual Studio 2005 서비스 팩 1 (SP1)에 플랫폼입니다. 응용 프로그램을 실행할 때 일부 경우 문을 수 올바르게 실행 되지. 따라서 결과 예측할 수 없습니다. 예를 들어, 응용 프로그램의 생성된 된 코드에서 if 문은 건너뛸 수도 있습니다.

이 문제는 다음과 같은 경우에만 발생합니다.

  • 두 비교 작업 사이에서는 MOV 명령이 몇 가지 있습니다.

  • 이러한 비교 작업 사용 하 여 동일한 피연산자.

  • 피연산자의 값은 MOV 지시에 의해 변경 됩니다.

이 시나리오에서는 두 번째 비교 작업에서 if 문은 건너뛸 수 있습니다.

참고

  • 사용 하 여 /O2 옵션이 나 /Ox 옵션은 응용 프로그램에이 문제가 발생할 수 있습니다.

  • x86에이 문제가 발생 하지 않습니다 플랫폼입니다.

원인

컴파일러 최적화 프로그램이 잘못 가정 하지 비교 작업을 포함 하 여 없이 XOR 작업에 의해 설정 된 플래그를 사용할 수 있도록이 문제가 발생 합니다.

해결 방법

핫픽스 정보

지원되는 핫픽스를 Microsoft에서 구할 수 있습니다. 그러나 이 핫픽스는 오직 이 문서에서 설명하는 문제를 해결하는 작업에만 사용됩니다. 이 문서에서 설명한 문제가 발생하는 시스템에만 이 핫픽스를 적용하십시오. 이 핫픽스는 추가 테스트가 필요할 수도 있습니다. 따라서, 이 문제로 심각하게 영향을 받지 않는 경우 이 핫픽스가 포함된 다음 소프트웨어 업데이트가 나올 때까지 기다리는 것이 좋습니다.

핫픽스를 다운로드할 수 있는 경우, 이 기술 자료 문서의 상단에 "핫픽스 다운로드 가능" 섹션이 있습니다. 이 섹션이 나타나지 않으면, Microsoft 고객 지원에 문의하여 핫픽스를 얻으십시오.

참고: 추가 문제가 발생하거나 문제 해결이 필요한 경우, 별도로 서비스를 요청해야 할 수도 있습니다. 추가 지원 질문과 이 특정 핫픽스가 필요하지 않은 문제에는 일반 지원 비용이 적용됩니다. Microsoft 고객 지원 전화 번호의 전체 목록을 확인하거나 별도 서비스 요청을 만들려면 다음 Microsoft 웹 사이트를 방문하십시오.

http://support.microsoft.com/contactus/?ws=support참고: "핫픽스 다운로드 사용 가능" 형식은 핫픽스 사용이 가능한 언어를 표시합니다. 사용자 언어가 표시되지 않는 것은 핫픽스를 해당 언어로 사용할 수 없기 때문입니다.

전제 조건

이 핫픽스를 적용 하려면 설치 된 Visual Studio 2005 s P 1이 있어야 합니다.

다시 시작 요구 사항

이 핫픽스를 적용 한 후 컴퓨터를 다시 시작할 필요가 없습니다.

핫픽스 대체 정보

이 핫픽스는 다른 핫픽스를 대체하지 않습니다.

파일 정보

이 핫픽스의 영어 버전은 다음 표에 열거된 파일 특성 (또는 그 이후의 파일 특성)을 가지고 있습니다. 이러한 파일의 시간과 날짜는 협정 세계시(UTC)로 나열되었습니다. 파일 정보를 볼 때는 로컬 시간으로 변환됩니다. UTC와 로컬 시간의 시차는 제어판의 날짜 및 시간 항목에서 표준 시간대 탭을 사용하여 찾을 수 있습니다.

파일 이름

파일 버전

파일 크기

날짜

시간

플랫폼

C2.dll

14.0.50727.3080

2,273,280

2008 년 11 월 19 일

18:52

x86

C2.dll

14.0.50727.3080

7,192,576

2008 년 11 월 19 일

23:25

IA-64

C2.dll

14.0.50727.3080

2,490,368

2008 년 11 월 19 일

23:26

x86

C2.dll

14.0.50727.3080

3,600,384

2008 년 11 월 19 일

23:33

x64

C2.dll

14.0.50727.3080

2,203,648

2008 년 11 월 19 일

23:33

x86

해결 방법

이 문제를 해결 하려면 다음 방법 중 하나를 사용 합니다.

  • Volatile 키워드는 경우 문에서 사용 되는 변수를 선언할 때 사용 합니다.

  • 속도 최적화 옵션을 사용 하지 않도록 설정 합니다. 예를 들어, /Os (코드 크기 우선) 옵션을 사용 하 여 /Ot 옵션을 바꿉니다. 또는 /O2 옵션이 나 /Ox 옵션 대신 /O1 옵션을 사용 합니다.

  • 작업을 비교 하는 두 번째에서 if 문은 전에 코드 줄을 추가 합니다. 예를 들어, printf 문을 추가 합니다.

상태

Microsoft는 이 문제가 '적용 대상' 섹션에 나열된 Microsoft 제품의 문제임을 확인했습니다.

자세한 내용

Visual Studio 2005에서 코드 최적화 기능을 사용 하면 문이 제대로 실행 될 수 있습니다 하나 이상의 코드에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.

925792 하나 이상의 코드 문이 있습니다 올바르게 실행 되지 Visual Studio 2005에서 코드 최적화 기능을 사용 하는 경우

소프트웨어 업데이트 용어에 대한 자세한 내용을 보려면, 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 문서를 확인하십시오.

Microsoft 소프트웨어 업데이트를 설명 하는 데 사용 되는 표준 용어에 대 한 824684 설명

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?
제출을 누르면 피드백이 Microsoft 제품과 서비스를 개선하는 데 사용됩니다. IT 관리자는 이 데이터를 수집할 수 있습니다. 개인정보처리방침

의견 주셔서 감사합니다!

×