C2 Warnings

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