Opened 5 years ago
Closed 4 years ago
#13525 closed Bugs (fixed)
Boost Test 1.67.0: Compilation error with GCC 4.6.3
| Reported by: | Owned by: | Raffi Enficiaud | |
|---|---|---|---|
| Milestone: | Boost 1.68.0 | Component: | test |
| Version: | Boost 1.67.0 | Severity: | Regression |
| Keywords: | Cc: |
Description
I was just testing 1.67.0 and ran into the following issue (1.66.0 works). Used compiler: g++ (Ubuntu/Linaro?? 4.6.3-1ubuntu5) 4.6.3
Boost build commands:
./bootstrap.sh --with-libraries=filesystem,exception,program_options,test,signals --prefix=/usr ./b2 link=shared runtime-link=shared optimization=speed variant=release cxxflags="-std=c++0x" install
The error message:
gcc.compile.c++ bin.v2/libs/test/build/gcc-4.6/release/link-static/threading-multi/test_main.o
In file included from ./boost/test/unit_test_suite.hpp:18:0,
from ./boost/test/impl/test_main.ipp:19,
from libs/test/src/test_main.cpp:13:
./boost/test/tree/test_case_template.hpp: In constructor ‘boost::unit_test::ut_detail::template_test_case_gen<TestCaseTemplate, std::tuple<_Elements ...> >::template_test_case_gen(boost::unit_test::const_string, boost::unit_test::const_string, std::size_t)’:
./boost/test/tree/test_case_template.hpp:172:15: error: expected nested-name-specifier before ‘tuple_t’
./boost/test/tree/test_case_template.hpp:172:15: error: ‘tuple_t’ has not been declared
./boost/test/tree/test_case_template.hpp:172:23: error: expected ‘;’ before ‘=’ token
./boost/test/tree/test_case_template.hpp:172:23: error: expected primary-expression before ‘=’ token
./boost/test/tree/test_case_template.hpp:172:60: error: expected primary-expression before ‘;’ token
./boost/test/tree/test_case_template.hpp:173:15: error: expected nested-name-specifier before ‘this_type’
./boost/test/tree/test_case_template.hpp:173:15: error: ‘this_type’ has not been declared
./boost/test/tree/test_case_template.hpp:173:25: error: expected ‘;’ before ‘=’ token
./boost/test/tree/test_case_template.hpp:173:25: error: expected primary-expression before ‘=’ token
./boost/test/tree/test_case_template.hpp:173:68: error: ‘tuple_t’ was not declared in this scope
./boost/test/tree/test_case_template.hpp:173:76: error: template argument 2 is invalid
./boost/test/tree/test_case_template.hpp:174:15: error: expected nested-name-specifier before ‘single_test_gen’
./boost/test/tree/test_case_template.hpp:174:15: error: ‘single_test_gen’ has not been declared
./boost/test/tree/test_case_template.hpp:174:31: error: expected ‘;’ before ‘=’ token
./boost/test/tree/test_case_template.hpp:174:31: error: expected primary-expression before ‘=’ token
./boost/test/tree/test_case_template.hpp:174:59: error: ‘this_type’ was not declared in this scope
./boost/test/tree/test_case_template.hpp:174:86: error: template argument 1 is invalid
./boost/test/tree/test_case_template.hpp:176:9: error: ‘single_test_gen’ was not declared in this scope
./boost/test/tree/test_case_template.hpp:176:25: error: expected ‘;’ before ‘op’
./boost/test/tree/test_case_template.hpp:178:24: error: the value of ‘tuple_t’ is not usable in a constant expression
./boost/test/tree/test_case_template.hpp:173:68: note: ‘tuple_t’ was not declared ‘constexpr’
./boost/test/tree/test_case_template.hpp:178:33: error: ‘op’ was not declared in this scope
./boost/test/tree/test_case_template.hpp:178:33: note: suggested alternative:
./boost/test/tools/assertion.hpp:65:14: note: ‘boost::test_tools::assertion::op’
"g++" -m32 -pthread -O3 -finline-functions -Wno-inline -Wall -pedantic -march=i686 -std=c++0x -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_STATIC_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_SYSTEM_STATIC_LINK=1 -DBOOST_TIMER_STATIC_LINK=1 -DNDEBUG -I"." -c -o "bin.v2/libs/test/build/gcc-4.6/release/link-static/threading-multi/test_main.o" "libs/test/src/test_main.cpp"
...failed gcc.compile.c++ bin.v2/libs/test/build/gcc-4.6/release/link-static/threading-multi/test_main.o...
Change History (7)
comment:1 by , 4 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:2 by , 4 years ago
Hi Raffi
Thanks for your feedback. Yes, this patch fixes the error for me.
comment:3 by , 4 years ago
I applied a different patch to the branch topic/13525-compilation-error-GCC-4-6-3. Would you have a chance to try this out?
Thanks Raffi
comment:4 by , 4 years ago
| Milestone: | To Be Determined → Boost 1.68.0 |
|---|---|
| Severity: | Showstopper → Regression |
comment:5 by , 4 years ago
Hi Raffi
I have tested the branch you mentioned and it fixes the error too.
comment:7 by , 4 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Note:
See TracTickets
for help on using tickets.

This is apparently a defect in gcc. Does this patch fix the error for you? https://github.com/boostorg/test/pull/140