Message Options

From RAD Studio
Jump to: navigation, search

Go Up to BCC32.EXE, the C++ 32-bit Command-Line Compiler

Use the -w option to specify message options for the C++ compiler (BCC32.exe):

  • To enable a particular warning message, enter the -w option with a one- to three-letter option code.
  • To disable the warning message, enter the -w- option with a one- to three- letter option code.


To display all warning and error messages, include the -w command option in your BCC32 command:

>bcc32 ... -w

To enable reporting of the warning "Mixing pointers to different 'char' types" (option code ucp, Default OFF), include the following flag in your BCC32 command:


To disable reporting of the warning "Declaration ignored" (option code dig, Default ON), include the following flag in your BCC32 command:


To display help on the warning message codes, enter a compiler command that contains only the -h and -w options:

C:>bcc32 -h -w

C:\Program Files (x86)\Embarcadero\Studio\23.0\bin>bcc32 -h -w
Embarcadero C++ 6.40 for Win32 Copyright (c) 1993-2011 Embarcadero Technologies,  Inc.
Available options (* = default setting, xxx = has sub-options: use -h -X):
(Note: -X- or -w-XXX will usually undo whatever was set or unset by -X or -wXXX.

 If two options conflict, the last one specified will be used.)
  -w      Display all warnings
  -w!     Return non-zero from compiler on warnings
  -wamb   8000 Ambiguous operators need parentheses
  -wamp   8001 Superfluous & with function
* -wasc   8002 Restarting compile using assembly
  -wasm   8003 Unknown assembler instruction
* -waus   8004 '%s' is assigned a value that is never used
* -wali   8086 Incorrect use of #pragma alias "aliasName"="substituteName"
* -watr   8100 '%s' attribute directive ignored
* -watr   8110 Duplicate '%s' attribute directive ignored
* -wadt   8134 Cannot allocate arrays of Delphi style class '%s'
  -wbbf   8005 Bit fields must be signed or unsigned int
* -wbei   8006 Initializing %s with %s
* -wbig   8007 Hexadecimal value contains too many digits
  -wbex   8120 Base class of dllexport class should also be dllexport
  -wbcx   8126 Base class of exported class should have exported constructor
* -wccc   8008 Condition is always %s
  -wcln   8009 Constant is long
* -wcom   8010 Continuation character \ found in // comment
* -wcpt   8011 Nonportable pointer comparison
* -wcsu   8012 Comparing signed and unsigned values
* -wcod   8093 Incorrect use of #pragma codeseg [seg_name] ["seg_class"] [group]

* -wcni   8108 Constant in new expression requires an initializer
  -wdef   8013 Possible use of '%s' before definition
* -wdig   8014 Declaration ignored
* -wdpu   8015 Declare '%s' prior to use in prototype
* -wdsz   8016 Array size for 'delete' ignored
* -wdup   8017 Redefinition of '%s' is not identical
  -wdep   8106 %s are deprecated
  -wdtp   8109 Parameter '%s' is a dependent type
* -wdpr   8111 Accessing deprecated entity '%s' %s
* -wdex   8112 Unresolved dependencies in expression
* -wdlx   8127 Function defined with different linkage
* -wdim   8128 Can't import a function being defined
  -wdgu   8129 Interface '%s' does not have a GUID
* -wdiu   8130 Interface '%s' does not derive from IUnknown. (Interfaces should
derive from IUnknown)
* -wdin   8131 Casting Delphi style class '%s' to an interface. Use 'System::int
erface_cast<%s>(cls)' instead
* -wdns   8139 Support for declspec '%s' not implemented.
* -weas   8018 Assigning %s to %s
* -weff   8019 Code has no effect
* -wext   8020 '%s' is declared as both external and static
  -wexc   8101 Extern C linkage ignored
* -weoi   8125 dllexport overrides previous dllimport
* -whch   8021 Handler for '%s' hidden by previous handler for '%s'
* -whid   8022 '%s' hides virtual function '%s'
* -wias   8023 Array variable '%s' is near
* -wibc   8024 Base class '%s' is also a base class of '%s'
* -will   8025 Ill-formed pragma
  -winl   8026 Functions %s are not expanded inline
  -winl   8027 Functions containing %s are not expanded inline
* -wifr   8085 Function '%s' redefined as non-inline
  -wimp   8102 Implicit conversion of '%s' to '%s'
* -wiex   8113 Inline function was declared with 'extern template'
* -winc   8115 Constant expression expected; statement ignored
* -wiip   8118 Inline member function in Package class
  -wiac   8121 Found invalid character from source code in the current text locale %s
* -wind   8132 Casting interface '%s' to Delphi style class. Use 'System::interface_cast<%s>(intf)' instead
* -witl   8136 Initialization of TLS data is not supported on this platform.
* -wlin   8028 Temporary used to initialize '%s'
* -wlvc   8029 Temporary used for parameter '%s'
* -wlvc   8030 Temporary used for parameter '%s' in call to '%s'
* -wlvc   8031 Temporary used for parameter %d
* -wlvc   8032 Temporary used for parameter %d in call to '%s'
* -wmpc   8033 Conversion to '%s' will fail for members of virtual base '%s'
* -wmpd   8034 Maximum precision used for member pointer type '%s'
* -wmsg   8035 %s
* -wmes   8095 Incorrect use of #pragma message( "string" )
* -wmcs   8096 Incorrect use of #pragma code_seg(["seg_name"[,"seg_class"]])
* -wmcc   8098 Multi-character character constant
* -wmls   8104 Local Static with constructor dangerous for multi-threaded apps
* -wmnc   8105 %s member '%s' in class without constructors
* -wmal   8119 Alignment reduced to maximum of %d
  -wmtx   8122 dllexport class member '%s' should be of exported type
  -wnak   8036 Non-ANSI keyword used: '%s'
* -wncf   8037 Non-const function %s called for const object
* -wnci   8038 Constant member '%s' is not initialized
* -wncl   8039 Constructor initializer list ignored
* -wnfd   8040 Function body ignored
* -wngu   8041 Negating unsigned value
* -wnin   8042 Initializer for object '%s' ignored
* -wnma   8043 Macro definition ignored
* -wnmu   8044 #undef directive ignored
  -wnod   8045 No declaration for function '%s'
* -wnop   8046 Pragma option pop with no matching option push
* -wnsf   8047 Declaration of static function '%s(...)' ignored
* -wnst   8048 Use qualified name to access member type '%s'
* -wntd   8049 Use '> >' for nested templates instead of '>>'
* -wnto   8050 No type OBJ file present; disabling external types option
* -wnvf   8051 Non-volatile function %s called for volatile object
* -wnpp   8083 Pragma pack pop with no matching pack push
  -wntn   8107 Type name expected
* -wnrm   8124 Published method '%s' refers to an unpublishable parameter or return type
* -wobi   8052 Base initialization without a class name is now obsolete
* -wobs   8053 '%s' is obsolete
* -wofp   8054 Style of function definition is now obsolete
* -wosh   8055 Possible overflow in shift operation
* -wovf   8056 Integer arithmetic overflow
* -wonr   8097 Not all options can be restored at this time
* -wpar   8057 Parameter '%s' is never used
* -wpch   8058 Cannot create pre-compiled header: %s
* -wpck   8059 Structure packing size has changed
* -wpia   8060 Possibly incorrect assignment
  -wpin   8061 Initialization is only partially bracketed
* -wpow   8062 Previous options and warnings not restored
* -wpre   8063 Overloaded prefix 'operator %s' used as a postfix operator
* -wpro   8064 Call to function with no prototype
* -wpro   8065 Call to function '%s' with no prototype
  -wprc   8084 Suggest parentheses to clarify precedence
* -wpcm   8094 Incorrect use of #pragma comment( <type> [,"string"] )
* -wpsb   8099 Static `main' is not treated as an entry point
* -wptl   8103 Path '%s' and filename '%s' exceed maximum size of %d
* -wpnf   8123 Path '%s' not found - path ignored in option '%s'
  -wpun   8135 Unknown #pragma '%s' ignored
* -wpns   8138 pragma '%s' not supported on this platform.
* -wrch   8066 Unreachable code
* -wret   8067 Both return and return with a value used
* -wrng   8068 Constant out of range in comparison
* -wrpt   8069 Nonportable pointer conversion
* -wrvl   8070 Function should return a value
* -wrlo   8116 Returning pointer to a local object
  -wsig   8071 Conversion may lose significant digits
* -wspa   8072 Suspicious pointer arithmetic
  -wstu   8073 Undefined structure '%s'
  -wstv   8074 Structure passed by value
* -wsus   8075 Suspicious pointer conversion
  -wstl   8087 '%s::operator==' must be publicly visible to be contained by a '%s'
  -wstl   8089 '%s::operator<' must be publicly visible to be contained by a '%s'
  -wstl   8090 '%s::operator<' must be publicly visible to be used with '%s'
  -wstl   8091 %s argument %s passed to '%s' is a %s iterator: %s iterator required
  -wstl   8092 %s argument %s passed to '%s' is not an iterator: %s iterator required
* -wsmx   8133 Requested savemem exceeds amount available (%d)
* -wtai   8076 Template instance '%s' is already instantiated
* -wtes   8077 Explicitly specializing an explicitly specialized class member makes no sense
* -wthr   8078 Throw expression violates exception specification
* -wtlb   8137 Deprecated #import directive encountered. Please use the TLIBIMP utility instead.
  -wucp   8079 Mixing pointers to different 'char' types
  -wuse   8080 '%s' is declared but never used
* -wucn   8114 Character represented by universal-character-name '\u%04x' cannot be represented in the current ansi locale %s
* -wvoi   8081 void functions may not return a value
* -wxxx   8117 NOT IN USE - DO NOT TRANSLATE
* -wzdi   8082 Division by zero

See Also