Microsoft KB Archive/120968

= BUG: Limitation w/ Disabling Warnings Above 4699 w/ #pragma =

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.



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 */

warning(disable:4756;disable:4706;disable:4699;disable:4244)
 * 1) pragma

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

-

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

© Microsoft Corporation. All rights reserved.