Article ID: 120968
Article Last Modified on 7/5/2005
APPLIES TO
- Microsoft Visual C++ 6.1
- Microsoft Visual C++ 1.0 Professional Edition
- Microsoft Visual C++ 2.0 Professional Edition
- Microsoft Visual C++ 4.0 Standard Edition
- Microsoft Visual C++ 4.1 Subscription
- Microsoft Visual C++ 4.2 Professional Edition
- Microsoft Visual C++ 5.0 Enterprise Edition
- Microsoft Visual C++ 6.0 Enterprise Edition
- Microsoft Visual C++ 5.0 Professional Edition
- Microsoft Visual C++ 6.0 Professional Edition
- Microsoft Visual C++ 6.0 Standard Edition
This article was previously published under Q120968
SYMPTOMS
Disabling a warning with #pragma warning will not succeed if the pragma is placed within the function where the warning occurs and the warning has a value of 4700 or greater.
CAUSE
Warnings greater than 4699 are generated by the second and third passes of the compiler.
RESOLUTION
To disable warnings with a value of 4700 or greater, place the #pragma warning outside of any function.
STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.
MORE INFORMATION
Sample Code
The following sample code demonstrates the problem:
/* Compile options needed: /W4 */ float big; float big2; int junk1; /* Use this pragma instead of the one below to disable all warnings */ /* #pragma warning(disable:4756;disable:4706;disable:4699;disable:4244) */ void main(void) { int i; /* This pragma will disable only the warnings < 4699 because of its placement within the function body */ #pragma warning(disable:4756;disable:4706;disable:4699;disable:4244) big = +1.0e+99; big2 = +1.1e+99; junk1 = i; if( i=0 ) i=0; }
Additional query words: 8.00 8.00c 9.00 10.00 10.10 10.20
Keywords: kbbug kbcode kbcompiler KB120968