Microsoft KB Archive/67078

= Different Warnings Appear Using Different Optimizations =

Article ID: 67078

Article Last Modified on 7/5/2005

-

APPLIES TO


 * Microsoft C Professional Development System 6.0
 * Microsoft C Professional Development System 6.0a
 * Microsoft C Professional Development System 6.0a
 * Microsoft C Professional Development System 6.0
 * Microsoft C Professional Development System 6.0a
 * Microsoft C/C++ Professional Development System 7.0
 * Microsoft Visual C++ 1.0 Professional Edition
 * Microsoft Visual C++ 1.5 Professional Edition
 * Microsoft Visual C++ 1.51
 * Microsoft Visual C++ 1.52 Professional Edition
 * Microsoft Visual C++ 2.0 Professional Edition
 * Microsoft Visual C++ 2.1
 * Microsoft Visual C++ 6.01 Professional Edition

-



This article was previously published under Q67078





SUMMARY
The information in this article is included in the documentation starting with Visual C++ 5.0. Look there for future revisions.

In Microsoft C/C++ compiler, different warning messages can appear during separate compilations of the same code when different optimizations are used. This is normal behavior that occurs because some warnings are found only while optimizing.



MORE INFORMATION
If the sample code below is compiled with /W4 (all warnings) and the /Os optimization (optimize for space), no warnings are found. However, when the code is compiled with /W4 and /Osle (optimize for size, loop, and global-register allocation), the following warning is generated:

file.c(7) : warning C4202: unreachable code

With Visual C++ for Windows NT versions 1.0, 2.0, and 2.1, as well as Visual C++ for Windows version 1.5 and 1.51, the following warning is generated when compiled with /W4 and /O2:

file.c(7) : warning C4702: unreachable code

There are several other optimizations and code examples that will exhibit this type of behavior. Once again, this is normal and serves to notify the developer that there MAY be a problem.

Sample Code
#include 

void main(void) {      goto bottom;

printf(&quot;Not used\n&quot;);   /* Code that is not used */

bottom:printf(&quot;Hello World!&quot;); }

Additional query words: 6.00 6.00a 6.00ax 7.00 8.00 8.00c 1.00 1.50 1.51 1.52 2.00 2.10 4.00

Keywords: kbcode kbcompiler KB67078

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.