Opened 13 years ago
Closed 12 years ago
#3758 closed Patches (fixed)
Using Boost Testing Framework from Boost.build Jamfile generates warning about "long long integer constant" with gcc 4.2.2
| Reported by: | Owned by: | Gennadiy Rozental | |
|---|---|---|---|
| Milestone: | Boost 1.42.0 | Component: | test |
| Version: | Boost 1.41.0 | Severity: | Cosmetic |
| Keywords: | Cc: |
Description
Hello everyone,
I'm using Boost.Build to automate testing. The Jamfile.v2 is as follow
import testing ;
use-project /boost : /path/to/boost ;
path-constant INCLUDE_PATH : path/to/include ;
path-constant SOURCE_PATH : $(INCLUDE_PATH) ;
project
: requirements <define>BOOST_TEST_MAIN
<threading>multi
<include>$(INCLUDE_PATH)
;
alias dependencies
:
/boost//unit_test_framework
[ glob $(SOURCE_PATH)/*.cpp ]
;
run main.cpp dependencies ;
so invoking /boostunit_test_framework refers to boost unit testing framework's project.
My test passes but while compiling the unit_test_framework libraries it generates the following warning ( gcc 4.4.2 )
"g++" -ftemplate-depth-128 -O0 -fno-inline -Wall -pedantic -g -pthread -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_TEST_DYN_LINK=1 -I"/home/gchatelet/boost" -c -o "/home/gchatelet/boost/bin.v2/libs/test/build/gcc-4.4.2/debug/threading-multi/interaction_based.o" "/home/gchatelet/boost/libs/test/src/interaction_based.cpp"
In file included from /home/gchatelet/boost/boost/detail/lcast_precision.hpp:16,
from /home/gchatelet/boost/boost/lexical_cast.hpp:31,
from /home/gchatelet/boost/boost/test/interaction_based.hpp:27,
from /home/gchatelet/boost/boost/test/impl/interaction_based.ipp:26,
from /home/gchatelet/boost/libs/test/src/interaction_based.cpp:16:
/home/gchatelet/boost/boost/integer_traits.hpp:164:66: warning: use of C99 long long integer constant
/home/gchatelet/boost/boost/integer_traits.hpp:164:77: warning: use of C99 long long integer constant
/home/gchatelet/boost/boost/integer_traits.hpp:170:70: warning: use of C99 long long integer constant
/home/gchatelet/boost/boost/integer_traits.hpp:170:70: warning: use of C99 long long integer constant
looking at the tests of boost unit testing framework "boost/libs/test/test/Jamfile.v2" I noticed it was already corrected in the tests but not in the build.
rule test-btl-lib ( test-rule : test-name : lib-name ? : pattern_file * : source_files * : extra-libs ? )
{
source_files ?= $(test-name).cpp ;
return [ $(test-rule) $(source_files) ../build//$(lib-name) $(extra-libs)
: #args
: $(pattern_file)
: #<stlport-iostream>on
# Activating -pedantic finds more gotchas
# Unfortunately, this warns about the use of "long long" in gcc's own stdlib
# So deactivate those warnings again
<toolset>gcc:<cxxflags>-pedantic
<toolset>gcc:<cxxflags>-Wno-long-long
<toolset>borland:<cxxflags>-w-8080
<toolset>msvc-6.5:<link>static
<toolset>msvc-8.0:<define>_SCL_SECURE_NO_DEPRECATE
<warnings>all
: $(test-name)
] ;
}
It seems my test project triggers the -pedantic flag and then gcc complains about "long long".
I'd like to activate the <warning-as-errors> flag for my whole project and this warning about "long long" prevents me to do so.
Can you consider my patch to apply the same workaround as for tests ?
Best regards, Guillaume
Attachments (1)
Change History (2)
by , 13 years ago
| Attachment: | boost.patch added |
|---|
comment:1 by , 12 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
This has been fixed in integer_traits.hpp.

The actual patch