Geoff Chappell - Software Analyst
The table below, which is still in development (for accuracy as well as for completeness), lists the warning numbers that the back-end C/C++ compiler (C2) is known to be capable of issuing in version 13.00.9466.
Text for each warning message is reproduced from the corresponding resource string in the executable, with placeholders resolved as much as possible in the style of the product documentation.
Warning numbers that the product documentation does not list among the C/C++ Build Errors are highlighted yellow. For some, the code that can raise the warning may turn out at closer inspection to be unreachable.
Warning | Level | Message |
---|---|---|
C4700 | 1 | local variable 'name' used without having been initialized |
C4701 | 4 | local variable 'name' may be used without having been initialized |
C4702 | 4 | unreachable code |
C4706 | 4 | assignment within conditional expression |
C4710 | 4 or 6 | function 'function' not inlined |
C4711 | 4 or 6 | function 'function' selected for automatic inline expansion |
C4714 | function 'function' marked as __forceinline not inlined | |
C4715 | ? | 'function' : not all control paths return a value |
C4716 | ? | 'function' : must return a value |
C4717 | ? | 'function' : recursive on all control paths, function will cause runtime stack overflow |
C4718 | 4 | 'function' : recursive call has no side effects, deleting |
C4720 | in-line assembler reports: '%s' | |
C4721 | '%s' : not available as an intrinsic | |
C4723 | 3 | potential divide by 0 |
C4724 | 3 | potential mod by 0 |
C4725 | 4 | instruction may be inaccurate on some Pentiums |
C4729 | 4 | function too big for flow graph based warnings |
C4730 | 1 | 'function' : mixing _m64 and floating point expressions may result in incorrect code |
C4731 | 1 | 'function' : frame pointer register 'register' modified by inline assembly code |
C4732 | intrinsic '%s' is not supported in this architecture | |
C4741 | /Oq option ignored for __fastcall function '%s' | |
C4756 | 2 | overflow in constant arithmetic |
C4761 | integral size mismatch in argument; conversion supplied | |
C4786 | 1 | 'identifier' : identifier was truncated to 'number' characters in the debug information |
C4792 | 3 | function 'function' declared using sysimport and referenced from native code; import library required to link |
C4793 | 3 | native code generated for function 'function': 'reason' |
C4794 | 1 | segment of thread local storage variable 'variable' changed from 'section1' to 'section2' |
C4798 | native code generated for p-code function '%s' with exception handler or unwind semantics | |
C4799 | 1 | No EMMS at end of function 'function' |
C4900 | Il mismatch between 'tool1' version 'version1' and 'tool2' version 'version2' | |
C4951 | 1 | '%s' has been edited since profile data was collected, function profile data not used |
C4952 | 1 | '%s' : no profile data found in program database '%s' |
C4953 | 1 | Inlinee '%s' has been edited since profile data was collected, profile data not used |
C4954 | '%s' : not profiled (contains __int64 switch expression) | |
C4956 | 1 | '%s' is too big to be profiled |