wiki:WarningFixes

Version 25 (modified by John Maddock, 13 years ago) ( diff )

--

This page is to log the progress of an initiative to reduce the number and impact of compiler warnings emitted from Boost code.

The priorities are:

  • Boost headers: warnings emitted with a long template instantiation back trace are particularly troublesome.
  • Boost source code: Users building Boost on their platform should ideally see a clean build with no warnings.
  • Core libraries, that are reused by other Boost libraries.

The main test compilers and flags are:

  • Microsoft Visual C++ (Current latest stable release is 2008), with /W4.
  • GNU GCC (Current latest stable release is 4.4.x) with /Wall /Wextra -pedantic.

Consider these warning levels as an aspiration, leaving them unfixed only with good reason. Only time will tell what the correct balance between warning-suppression and time-wasting is.

In addition if library test cases can be made warning free, then we can begin to enforce a no-warnings policy by testing with warnings-as-errors with the above compilers.

LibraryOwnerStatusNotes
Any unknown
Array PatchMSVC only
Bind CleanPatches here
Call Traits See Utility
Compressed Pair See Utility
ConfigjohnmaddockCleanOnly headers are clean, I haven't looked at the tests.
Concept Check unknown
ConversionjohnmaddockcleanBoth MSVC and GCC clean except for one deliberate warning.
Date Time Bug
Enable If unknown
Exception unknown
Filesystem unknown
For Each unknown
Format unknown
Function unknown
Function Types unknown
Fusion warnings
Graph unknown
Hashdanieljamesunknowngcc: headers clean, warnings in one of the tests
Integer unknown
Iterators unknown
Min Max unknown
MPL unknown
Multi-index ContainersjoaquincleanWarnings pop up from Boost.Integer (gcc), Boost.Serialization and Boost.Test (tests only)
Operators unknown
Optional unknown
Parameter unknown
Pool unknown
Preprocessor unknown
Program Options Warnings
Property Map unknown
Protoeric_nieblerWarnings
RegexjohnmaddockClean
Serialization unknown
Smart Ptr unknown
Spirithkaiser(msvc) danieljames(gcc)unknownMSVC warnings have been cleaned, gcc still needs investigation
Static Assertjohnmaddockclean
Swap unknown
System unknown
TestjohnmaddockPatchesA couple of tests still produce warnings: Jamfile issues?
Timer unknown
Thread Warnings
Tuple unknown
Typeof unknown
Type TraitsjohnmaddockCleanOne test has (unfixable?) warnings with gcc.
Unordereddanieljamesunknowngcc clean
Utilityjohnmaddockcleanresult_of_test.cpp and verify_test.cpp assert_test.cpp and base_from_member_test.cpp still have warnings that are probably deliberate.
Variant warnings
Wavehkaiserunknowninvestigating

Please set the Status field above to one of:

  • unknown - library hasn't been tested for warnings yet.
  • warnings - we know that the library has warnings, but no one has done anything about it yet.
  • bug - if a bug report has been filed on the trac (with link)
  • patch - if a Trac patch has been filed (with link).
  • clean - fixes are in Trunk.
  • release - fixes are in release branch.

Note that warnings from dependencies are not considered issues against that library - they should be filed against the depedency instead.

Please set the owner field to the Trac user ID of the person currently investigating so that we don't duplicate effort.

Libraries can be tested by cd'ing into boost-root/libname/test and invoking:

bjam msvc warnings=all

or

bjam gcc warnings=all cxxflags=-Wextra
Note: See TracWiki for help on using the wiki.