Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Compiler Warnings That Are Off by Default
Collapse the table of content
Expand the table of content

Compiler Warnings That Are Off by Default

The compiler includes warnings that are turned off by default. If a warning is turned off by default, most users would not want to see it. However, you can enable such a warning by using one of the following options.

#pragma warning(default : warning_number)

The specified warning (warning_number) is enabled at its default level. Documentation for the warning contains the default level of the warning.

#pragma warning(warning_level : warning_number)

The specified warning (warning_number) is enabled at the specified level (warning_level).

/Wall

/Wall enables all warnings that are off by default.

The following warnings are turned off by default.

C4061 (level 4)

enumerator 'identifier' in a switch of enum 'enumeration' is not explicitly handled by a case label

C4062 (level 3)

enumerator 'identifier' in a switch of enum 'enumeration' is not handled

C4191 (level 3)

'operator/operation': unsafe conversion from 'type of expression' to 'type required'

C4242 (level 4)

'identifier': conversion from 'type1' to 'type2', possible loss of data

C4254 (level 4)

'operator': conversion from 'type1' to 'type2', possible loss of data

C4255 (level 4)

'function': no function prototype given: converting '()' to '(void)'

C4263 (level 4)

'function': member function does not override any base class virtual member function

C4264 (level 1)

'virtual_function': no override available for virtual member function from base 'class'; function is hidden

C4265 (level 3)

'class': class has virtual functions, but destructor is not virtual

C4266 (level 4)

'function': no override available for virtual member function from base 'type'; function is hidden

C4287 (level 3)

'operator': unsigned/negative constant mismatch

C4289 (level 4)

nonstandard extension used : 'var' : loop control variable declared in the for-loop is used outside the for-loop scope

C4296 (level 4)

'operator': expression is always false

C4302 (level 2)

'conversion': truncation from 'type1' to 'type2'

C4350 (level 1)

behavior change: 'member1' called instead of 'member2'

C4365 (level 4)

'action': conversion from 'type_1' to 'type_2', signed/unsigned mismatch

C4412 (level 2)

'function': function signature contains type 'type'; C++ objects are unsafe to pass between pure code and mixed or native

C4431 (level 4)

missing type specifier - int assumed. Note: C no longer supports default-int

C4514 (level 4)

'function': unreferenced inline function has been removed

C4536 (level 4)

'type name': type-name exceeds meta-data limit of 'limit' characters

C4545 (level 1)

expression before comma evaluates to a function which is missing an argument list

C4546 (level 1)

function call before comma missing argument list

C4547 (level 1)

'operator': operator before comma has no effect; expected operator with side-effect

C4548 (level 1)

expression before comma has no effect; expected expression with side-effect

C4549 (level 1)

'operator': operator before comma has no effect; did you intend 'operator'?

C4555 (level 1)

expression has no effect; expected expression with side-effect

C4557 (level 3)

'__assume' contains effect 'effect'

C4571 (level 4)

informational: catch(…) semantics changed since Visual C++ 7.1; structured exceptions (SEH) are no longer caught

C4619 (level 3)

#pragma warning: there is no warning number 'number'

C4623 (level 4)

'derived class': default constructor could not be generated because a base class default constructor is inaccessible

C4625 (level 4)

'derived class': copy constructor could not be generated because a base class copy constructor is inaccessible

C4626 (level 4)

'derived class': assignment operator could not be generated because a base class assignment operator is inaccessible

C4628 (level 1)

digraphs not supported with -Ze. Character sequence 'digraph' not interpreted as alternate token for 'char'

C4640 (level 3)

'instance': construction of local static object is not thread-safe

C4641 (level 3)

XML document comment has an ambiguous cross reference

C4668 (level 4)

'symbol' is not defined as a preprocessor macro, replacing with '0' for 'directives'

C4686 (level 3)

'user-defined type': possible change in behavior, change in UDT return calling convention

C4692 (level 1)

'function': signature of non-private member contains assembly private native type 'native_type'

C4710 (level 4)

'function': function not inlined

C4711 (level 1)

function 'function' selected for inline expansion

C4738 (level 3)

storing 32-bit float result in memory, possible loss of performance

C4820 (level 4)

'bytes' bytes padding added after construct 'member_name'

C4826 (level 2)

conversion from 'type1' to 'type2' is sign-extended. This may cause unexpected runtime behavior

C4836 (level 1)

nonstandard extension used : 'type' : local types or unnamed types cannot be used as template arguments

C4837 (level 4)

trigraph detected: '??%c' replaced by '%c'

C4905 (level 1)

wide string literal cast to 'LPSTR'

C4906 (level 1)

string literal cast to 'LPWSTR'

C4917 (level 1)

'declarator': a GUID can only be associated with a class, interface, or namespace

C4928 (level 1)

illegal copy-initialization; more than one user-defined conversion has been implicitly applied

C4931 (level 4)

we are assuming the type library was built for number-bit pointers

C4946 (level 1)

reinterpret_cast used between related classes: 'class1' and 'class2'

C4962

'function': profile-guided optimizations disabled because optimizations caused profile data to become inconsistent

Community Additions

ADD
Show:
© 2015 Microsoft