::time_since_epoch() const 11 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/thread/detail/invoke.hpp:134:14 in _ZN5boost6detail6invokeIPFvNS_7promiseIRiEEEJS4_EEEDTclclsr5boostE7forwardIT_Efp_Espclsr5boostE7forwardIT0_Efp0_EEEOS7_DpOS8_ 11 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/smart_ptr/shared_ptr.hpp:392:63 in boost::shared_ptr<boost::detail::shared_state<int&> ::shared_ptr(boost::shared_ptr<boost::detail::shared_state<int&> > const&) 10 SUMMARY: MemorySanitizer: use-of-uninitialized-value /usr/local/bin/../include/c++/v1/string:640:63 in std::__1::char_traits<char>::length(char const*) 10 SUMMARY: AddressSanitizer: 4 byte(s) leaked in 1 allocation(s). 8 SUMMARY: AddressSanitizer: 552 byte(s) leaked in 23 allocation(s). 7 SUMMARY: ThreadSanitizer: data race /usr/local/bin/../include/c++/v1/ios:742:54 in std::__1::basic_ios<char, std::__1::char_traits<char> >::fill() const 6 SUMMARY: ThreadSanitizer: data race /usr/local/bin/../include/c++/v1/ios:437:12 in std::__1::ios_base::flags() const 6 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/thread/detail/invoke.hpp:134:14 in _ZN5boost6detail6invokeIPFvNS_7promiseIiEEEJS3_EEEDTclclsr5boostE7forwardIT_Efp_Espclsr5boostE7forwardIT0_Efp0_EEEOS6_DpOS7_ 6 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/smart_ptr/shared_ptr.hpp:392:63 in boost::shared_ptr<boost::detail::shared_state<int> ::shared_ptr(boost::shared_ptr<boost::detail::shared_state<int> > const&) 5 SUMMARY: ThreadSanitizer: data race /usr/local/bin/../include/c++/v1/map:1006:47 in std::__1::map<void const*, boost::detail::tss_data_node, std::__1::less<void const*>, std::__1::allocator<std::__1::pair<void const* const, boost::detail::tss_data_node> > >::empty() const 5 SUMMARY: ThreadSanitizer: data race /usr/local/bin/../include/c++/v1/ios:506:22 in std::__1::ios_base::width(long) 5 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/thread/src/pthread/thread.cpp:85:78 in boost::detail::(anonymous namespace)::tls_destructor(void*) 5 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../libs/serialization/test/test_shared_ptr.cpp:123:5 in void save_and_load<boost::shared_ptr<A> >(boost::shared_ptr<A>&) 5 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../libs/serialization/test/test_shared_ptr_132.cpp:117:5 in void save_and_load<boost_132::shared_ptr<A> (boost_132::shared_ptr<A> const&) 5 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../libs/serialization/src/basic_iarchive.cpp:443:16 in boost::archive::detail::basic_iarchive_impl::load_pointer(boost::archive::detail::basic_iarchive&, void*&, boost::archive::detail::basic_pointer_iserializer const*, boost::archive::detail::basic_pointer_iserializer const* (*)(boost::serialization::extended_type_info const&)) 5 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/numeric/odeint/stepper/bulirsch_stoer.hpp:202:13 in boost::numeric::odeint::controlled_step_result boost::numeric::odeint::bulirsch_stoer<std::__1::vector<double, std::__1::allocator<double> >, double, std::__1::vector<double, std::__1::allocator<double> >, double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>::try_step<void (*)(std::__1::vector<double, std::__1::allocator<double> > const&, std::__1::vector<double, std::__1::allocator<double> >&, double), std::__1::vector<double, std::__1::allocator<double> >, std::__1::vector<double, std::__1::allocator<double> >, std::__1::vector<double, std::__1::allocator<double> > >(void (*)(std::__1::vector<double, std::__1::allocator<double> > const&, std::__1::vector<double, std::__1::allocator<double> >&, double), std::__1::vector<double, std::__1::allocator<double> > co 5 SUMMARY: AddressSanitizer: heap-use-after-free /home/ben/development/llvm/trunk/llvm/projects/compiler-rt/lib/asan/asan_interceptors.cc:403:3 in __asan_memcpy 5 SUMMARY: AddressSanitizer: 936 byte(s) leaked in 6 allocation(s). 5 SUMMARY: AddressSanitizer: 768 byte(s) leaked in 4 allocation(s). 5 SUMMARY: AddressSanitizer: 64 byte(s) leaked in 2 allocation(s). 5 SUMMARY: AddressSanitizer: 576 byte(s) leaked in 4 allocation(s). 5 SUMMARY: AddressSanitizer: 552 byte(s) leaked in 2 allocation(s). 5 SUMMARY: AddressSanitizer: 480 byte(s) leaked in 8 allocation(s). 5 SUMMARY: AddressSanitizer: 368 byte(s) leaked in 4 allocation(s). 5 SUMMARY: AddressSanitizer: 32 byte(s) leaked in 4 allocation(s). 5 SUMMARY: AddressSanitizer: 240 byte(s) leaked in 4 allocation(s). 5 SUMMARY: AddressSanitizer: 1 byte(s) leaked in 1 allocation(s). 4 SUMMARY: ThreadSanitizer: thread leak /home/ben/development/boost/test/build/boost_root/status/../libs/thread/src/pthread/thread.cpp:250:25 in boost::thread::start_thread_noexcept() 4 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/thread/pthread/pthread_mutex_scoped_lock.hpp:24:23 in boost::pthread::pthread_mutex_scoped_lock::pthread_mutex_scoped_lock(pthread_mutex_t*) 4 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/thread/pthread/pthread_mutex_scoped_lock.hpp:24:17 in boost::pthread::pthread_mutex_scoped_lock::pthread_mutex_scoped_lock(pthread_mutex_t*) 4 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/thread/pthread/once_atomic.hpp:128:25 in void boost::call_once<void (&)()>(boost::once_flag&, void (&)()) 4 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/thread/detail/thread.hpp:116:17 in boost::detail::thread_data<void (*)()>::run() 4 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/atomic/detail/atomic_template.hpp:134:22 in boost::atomics::detail::base_atomic<unsigned int, int>::compare_exchange_strong(unsigned int&, unsigned int, boost::memory_order, boost::memory_order) volatile 4 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../libs/serialization/test/test_shared_ptr_multi_base.cpp:185:5 in void shared_weak<boost::shared_ptr<Sub>, boost::weak_ptr<Base3> (boost::shared_ptr<Sub>&, boost::weak_ptr<Base3>&) 4 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/type_index/stl_type_index.hpp:141:40 in boost::typeindex::stl_type_index::pretty_name() const 3 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/thread/detail/invoke.hpp:134:14 in _ZN5boost6detail6invokeIPFvNS_7promiseIvEEEJS3_EEEDTclclsr5boostE7forwardIT_Efp_Espclsr5boostE7forwardIT0_Efp0_EEEOS6_DpOS7_ 3 SUMMARY: MemorySanitizer: use-of-uninitialized-value /usr/local/bin/../include/c++/v1/string:3767:13 in bool std::__1::operator==<std::__1::allocator<char> (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) 3 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/spirit/home/qi/numeric/detail/real_impl.hpp:295:22 in bool boost::spirit::qi::detail::real_impl<double, boost::spirit::qi::real_policies<double> >::parse<char const*, double>(char const*&, char const* const&, double&, boost::spirit::qi::real_policies<double> const&) 3 SUMMARY: MemorySanitizer: use-of-uninitialized-value /build/buildd/glibc-2.21/misc/tsearch.c:356 in tdelete 2 SUMMARY: ThreadSanitizer: data race (/home/ben/development/llvm/trunk/build/release/projects/compiler-rt/lib/tsan/libcxx_tsan/lib/libc++.so.1+0x381e2) in std::__1::__shared_weak_count::__release_shared() 2 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/thread/test/threads/thread/members/try_join_until_pass.cpp:55:12 in G::operator()() 2 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/thread/test/threads/thread/members/try_join_until_pass.cpp:54:5 in G::operator()() 2 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/thread/test/threads/thread/members/detach_pass.cpp:70:5 in main 2 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/thread/test/threads/thread/members/detach_pass.cpp:69:5 in main 2 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/thread/test/threads/thread/constr/move_pass.cpp:58:55 in G::operator()(int, double) 2 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/asio/test/strand.cpp:91:3 in sleep_increment(boost::asio::io_service*, int*) 2 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/thread/future.hpp:3377:50 in boost::packaged_task<double (int, char)>::packaged_task(boost::packaged_task<double (int, char)>&&) 2 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/thread/future.hpp:3377:11 in boost::packaged_task<double (int, char)>::packaged_task(boost::packaged_task<double (int, char)>&&) 2 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/thread/detail/invoke.hpp:134:14 in _ZN5boost6detail6invokeIPFvNS_13packaged_taskIFdicEEEEJS4_EEEDTclclsr5boostE7forwardIT_Efp_Espclsr5boostE7forwardIT0_Efp0_EEEOS7_DpOS8_ 2 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/smart_ptr/shared_ptr.hpp:392:63 in boost::shared_ptr<boost::detail::shared_state<void> ::shared_ptr(boost::shared_ptr<boost::detail::shared_state<void> > const&) 2 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/smart_ptr/shared_ptr.hpp:334:35 in boost::shared_ptr<boost::detail::task_base_shared_state<double (int, char)> >::shared_ptr() 2 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/smart_ptr/detail/shared_count.hpp:114:21 in boost::detail::shared_count::shared_count() 2 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/log/utility/once_block.hpp:91:24 in boost::log::v2_mt_posix::aux::once_block_sentry::executed() const 2 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/multiprecision/gmp.hpp:159:10 in boost::multiprecision::backends::detail::gmp_float_imp<50u>::operator=(long) 2 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/geometry/strategies/cartesian/point_in_box.hpp:36:34 in bool boost::geometry::strategy::within::within_range::apply<double, double>(double const&, double const&, double const&) 2 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/container/vector.hpp:2774:7 in boost::container::container_detail::vec_iterator<boost::container::stable_vector_detail::node_base<void*>**, false> boost::container::vector<boost::container::stable_vector_detail::node_base<void*>*, boost::container::allocator<boost::container::stable_vector_detail::node_base<void*>*, 2u, 0u> ::priv_forward_range_insert<boost::container::container_detail::insert_value_initialized_n_proxy<boost::container::allocator<boost::container::stable_vector_detail::node_base<void*>*, 2u, 0u>, boost::container::stable_vector_detail::node_base<void*>**> >(boost::container::stable_vector_detail::node_base<void*>** const&, unsigned long, boost::container::container_detail::insert_value_initialized_n_proxy<boost::container::allocator<boost::container::stable_vector_detail::node_base<void*>*, 2u, 0u>, boost::container::stable_vector_detail::node_base<void*>**>) 2 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/container/vector.hpp:2604:11 in void boost::container::vector<MyInt, boost::container::allocator<MyInt, 2u, 6u> >::priv_push_back<MyInt>(MyInt&&) 2 SUMMARY: MemorySanitizer: use-of-uninitialized-value /build/buildd/glibc-2.21/misc/tsearch.c:320 in tfind 2 SUMMARY: AddressSanitizer: stack-buffer-overflow /home/ben/development/boost/test/build/boost_root/status/../libs/spirit/classic/test/traverse_tests.cpp:379:44 in void
Hello all. Now that I've finally managed to get the sanitizers all working properly (correctly linking against the sanitized runtimes) I'd like to present a summary of its output (which I hope doesn't wrap). I would like to point out that the sanitizers may not be able to completely determine whether the code is correct or not, perhaps merely that they do not understand it (inline asm, etc.), and it also looks like some of the errors are in libc++, not Boost. If the code is determined to be correct, I could add entries to the blacklist to make sure the sanitizers ignore the output, but I would prefer not to. Perhaps a better approach would be to mark up the code so that all users of sanitizers benefit, rather than just the test matrix. Suggestions on how to reduce this output (I hope to publish summaries on a regular basis) in the best possible way are welcomed. I've ordered the output by the number of test failures that result from a particular complaint as determined by the command below: cat bjam.log | grep SUMMARY | sort | uniq -c | sort -n -r Count Warning 89 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/smart_ptr/detail/shared_count.hpp:449:49 in boost::detail::shared_count::shared_count(boost::detail::shared_count const&) 70 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/smart_ptr/shared_ptr.hpp:392:63 in boost::shared_ptr<boost::detail::thread_data_base>::shared_ptr(boost::shared_ptr<boost::detail::thread_data_base> const&) 69 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/smart_ptr/detail/sp_counted_base_clang.hpp:31:5 in boost::detail::atomic_increment(int _Atomic*) 44 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/smart_ptr/shared_ptr.hpp:392:57 in boost::shared_ptr<boost::detail::thread_data_base>::shared_ptr(boost::shared_ptr<boost::detail::thread_data_base> const&) 44 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/smart_ptr/detail/shared_count.hpp:449:43 in boost::detail::shared_count::shared_count(boost::detail::shared_count const&) 33 SUMMARY: ThreadSanitizer: data race on vptr (ctor/dtor vs virtual call) /home/ben/development/boost/test/build/boost_root/status/../libs/thread/src/pthread/thread.cpp:168:21 in boost::(anonymous namespace)::thread_proxy(void*) 22 SUMMARY: ThreadSanitizer: data race (/home/ben/development/llvm/trunk/build/release/projects/compiler-rt/lib/tsan/libcxx_tsan/lib/libc++.so.1+0x43962) in std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::assign(char const*, unsigned long) 21 SUMMARY: ThreadSanitizer: data race (/home/ben/development/llvm/trunk/build/release/projects/compiler-rt/lib/tsan/libcxx_tsan/lib/libc++.so.1+0x43991) in std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::assign(char const*, unsigned long) 21 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/test/utils/basic_cstring/basic_cstring.hpp:384:13 in boost::unit_test::basic_cstring<char const>::operator=(boost::unit_test::basic_cstring<char const> const&) 21 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/test/utils/basic_cstring/basic_cstring.hpp:383:13 in boost::unit_test::basic_cstring<char const>::operator=(boost::unit_test::basic_cstring<char const> const&) 21 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/test/impl/unit_test_log.ipp:118:41 in boost::unit_test::(anonymous namespace)::unit_test_log_impl::set_checkpoint(boost::unit_test::basic_cstring<char const>, unsigned long, boost::unit_test::basic_cstring<char const>) 18 SUMMARY: ThreadSanitizer: data race /usr/local/bin/../include/c++/v1/ios:499:12 in std::__1::ios_base::width() const 15 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/multiprecision/gmp.hpp:331:10 in boost::multiprecision::backends::detail::gmp_float_imp<50u>::~gmp_float_imp() 12 SUMMARY: ThreadSanitizer: heap-use-after-free /home/ben/development/boost/test/build/boost_root/status/../boost/chrono/time_point.hpp:196:20 in boost::chrono::time_point<boost::chrono::steady_clock, boost::chrono::duration<long, boost::ratio<1l, 1000000000l> > post_order_trace_test<boost::spirit::classic::sequence<boost::spirit::classic::chlit<char>, boost::spirit::classic::chlit<char> >
(boost::spirit::classic::sequence<boost::spirit::classic::chlit<char>, boost::spirit::classic::chlit<char> > const&, char const**, unsigned long) 2 SUMMARY: AddressSanitizer: stack-buffer-overflow /home/ben/development/boost/test/build/boost_root/status/../libs/local_function/test/return_derivative_seq.cpp:17:9 in derivative(boost::function<int (int)>&, int)::boost_local_function_auxXfunctorX17X::operator()(int) 2 SUMMARY: AddressSanitizer: 576 byte(s) leaked in 12 allocation(s). 2 SUMMARY: AddressSanitizer: 288 byte(s) leaked in 6 allocation(s). 2 SUMMARY: AddressSanitizer: 16 byte(s) leaked in 1 allocation(s). 2 SUMMARY: AddressSanitizer: 14496 byte(s) leaked in 404 allocation(s). 2 SUMMARY: AddressSanitizer: 120 byte(s) leaked in 5 allocation(s). 1 SUMMARY: ThreadSanitizer: data race /usr/local/bin/../include/c++/v1/ios:488:22 in std::__1::ios_base::precision(long) 1 SUMMARY: ThreadSanitizer: data race /usr/local/bin/../include/c++/v1/ios:444:20 in std::__1::ios_base::flags(unsigned int) 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/thread/test/./util.inl:106:16 in (anonymous namespace)::execution_monitor::wait() 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/thread/test/threads/thread/members/try_join_for_pass.cpp:55:12 in G::operator()() 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/thread/test/threads/thread/members/try_join_for_pass.cpp:54:5 in G::operator()() 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/thread/test/threads/thread/members/join_pass.cpp:56:12 in G::operator()() 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/thread/test/threads/thread/members/join_pass.cpp:39:5 in G::G() 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/spirit/classic/test/owi_mt_tests.cpp:93:23 in test_task<boost::spirit::classic::impl::object_with_id<tag1, unsigned long> >::increase_test_size(unsigned long) 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/log/test/run/util_once_block.cpp:64:25 in once_block_flag_thread(boost::barrier&) 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/log/test/run/util_once_block.cpp:112:25 in once_block_thread(boost::barrier&) 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/interprocess/test/condition_test_template.hpp:83:17 in void boost::interprocess::test::condition_test_thread<boost::interprocess::interprocess_condition_any, boost::interprocess::ipcdetail::spin_mutex>(boost::interprocess::test::condition_test_data<boost::interprocess::interprocess_condition_any, boost::interprocess::ipcdetail::spin_mutex>*) 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/interprocess/test/condition_test_template.hpp:321:15 in void boost::interprocess::test::do_test_condition_queue_notify_one<boost::interprocess::interprocess_condition_any, boost::interprocess::ipcdetail::spin_mutex>() 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/interprocess/test/condition_test_template.hpp:282:10 in boost::interprocess::test::condition_func<boost::interprocess::interprocess_condition_any, boost::interprocess::ipcdetail::spin_mutex>::operator()() 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/interprocess/test/condition_test_template.hpp:277:10 in boost::interprocess::test::condition_func<boost::interprocess::interprocess_condition_any, boost::interprocess::ipcdetail::spin_mutex>::operator()() 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/atomic/test/ordering.cpp:200:40 in total_store_order_test<(boost::memory_order)0, (boost::memory_order)0>::thread2fn() 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../libs/atomic/test/atomicity.cpp:131:28 in racy_add(unsigned int volatile&, unsigned long) 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/thread/pthread/mutex.hpp:62:17 in boost::posix::pthread_mutex_lock(pthread_mutex_t*) 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/thread/future.hpp:2481:88 in boost::promise<void>::promise(boost::promise<void>&&) 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/thread/detail/invoke.hpp:134:14 in _ZN5boost6detail6invokeIPFvvEJEEEDTclclsr5boostE7forwardIT_Efp_Espclsr5boostE7forwardIT0_Efp0_EEEOS4_DpOS5_ 1 SUMMARY: ThreadSanitizer: data race /home/ben/development/boost/test/build/boost_root/status/../boost/smart_ptr/shared_ptr.hpp:663:16 in boost::shared_ptr<boost::detail::shared_state<void> >::get() const 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /usr/local/bin/../include/c++/v1/bitset:757:46 in std::__1::bitset<8ul>::bitset<char, std::__1::char_traits<char>, std::__1::allocator<char> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::size_type, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::size_type, char, char) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /usr/local/bin/../include/c++/v1/algorithm:1193:13 in bool std::__1::equal<boost::archive::iterators::mb_from_wchar<wchar_t const*>, char const*, std::__1::__equal_to<wchar_t, char> (boost::archive::iterators::mb_from_wchar<wchar_t const*>, boost::archive::iterators::mb_from_wchar<wchar_t const*>, char const*, std::__1::__equal_to<wchar_t, char>) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value (/home/ben/development/boost/test/build/results/boost/bin.v2/libs/multiprecision/test/test_rational_io_mpz.test/clang-linux-3.7~msan~c14_libc++/release/test_rational_io_mpz+0x76708) in boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> generate_random<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >() 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value (/home/ben/development/boost/test/build/results/boost/bin.v2/libs/multiprecision/test/test_miller_rabin.test/clang-linux-3.7~msan~c14_libc++/release/test_miller_rabin+0x75bbf) in void test<boost::multiprecision::number<boost::multiprecision::backends::gmp_int, (boost::multiprecision::expression_template_option)1> >() 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value (/home/ben/development/boost/test/build/results/boost/bin.v2/libs/multiprecision/test/test_int_io_mpz.test/clang-linux-3.7~msan~c14_libc++/release/test_int_io_mpz+0x7ca20) in boost::multiprecision::number<boost::multiprecision::backends::gmp_int, (boost::multiprecision::expression_template_option)1> generate_random<boost::multiprecision::number<boost::multiprecision::backends::gmp_int, (boost::multiprecision::expression_template_option)1> >() 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value (/home/ben/development/boost/test/build/results/boost/bin.v2/libs/multiprecision/test/test_generic_conv.test/clang-linux-3.7~msan~c14_libc++/release/test_generic_conv+0x99138) in void boost::multiprecision::detail::generic_interconvert<boost::multiprecision::backends::gmp_int, boost::multiprecision::backends::cpp_int_backend<0u, 0u, (boost::multiprecision::cpp_integer_type)1, (boost::multiprecision::cpp_int_check_type)0, std::__1::allocator<unsigned long long> > (boost::multiprecision::backends::gmp_int&, boost::multiprecision::backends::cpp_int_backend<0u, 0u, (boost::multiprecision::cpp_integer_type)1, (boost::multiprecision::cpp_int_check_type)0, std::__1::allocator<unsigned long long> > const&, mpl_::int_<0> const&, mpl_::int_<0> const&) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value (/home/ben/development/boost/test/build/results/boost/bin.v2/libs/multiprecision/test/test_float_io_mpf.test/clang-linux-3.7~msan~c14_libc++/release/test_float_io_mpf+0x916e9) in void test<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<50u>, (boost::multiprecision::expression_template_option)1> >() 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value (/home/ben/development/boost/test/build/results/boost/bin.v2/libs/multiprecision/test/test_cpp_int_3.test/clang-linux-3.7~msan~c14_libc++/release/test_cpp_int_3+0x89656) in boost::multiprecision::number<boost::multiprecision::backends::gmp_int, (boost::multiprecision::expression_template_option)1> generate_random<boost::multiprecision::number<boost::multiprecision::backends::gmp_int, (boost::multiprecision::expression_template_option)1> >(unsigned int) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value (/home/ben/development/boost/test/build/results/boost/bin.v2/libs/multiprecision/test/test_cpp_int_2.test/clang-linux-3.7~msan~c14_libc++/release/test_cpp_int_2+0x89246) in boost::multiprecision::number<boost::multiprecision::backends::gmp_int, (boost::multiprecision::expression_template_option)1> generate_random<boost::multiprecision::number<boost::multiprecision::backends::gmp_int, (boost::multiprecision::expression_template_option)1> >(unsigned int) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value (/home/ben/development/boost/test/build/results/boost/bin.v2/libs/multiprecision/test/test_cpp_int_1.test/clang-linux-3.7~msan~c14_libc++/release/test_cpp_int_1+0x95d16) in boost::multiprecision::number<boost::multiprecision::backends::gmp_int, (boost::multiprecision::expression_template_option)1> generate_random<boost::multiprecision::number<boost::multiprecision::backends::gmp_int, (boost::multiprecision::expression_template_option)1> >(unsigned int) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../libs/serialization/src/basic_xml_grammar.ipp:200:5 in boost::archive::basic_xml_grammar<char>::my_parse(std::__1::basic_istream<char, std::__1::char_traits<char> >&, boost::spirit::classic::rule<boost::spirit::classic::scanner<std::__1::__wrap_iter<char*>, boost::spirit::classic::scanner_policies<boost::spirit::classic::iteration_policy, boost::spirit::classic::match_policy, boost::spirit::classic::action_policy> >, boost::spirit::classic::nil_t, boost::spirit::classic::nil_t> const&, char) const 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../libs/graph/test/typestr.hpp:33:29 in std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > typestr<boost::undirected_graph<VertexBundle, EdgeBundle, GraphBundle> >() 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../libs/container/test/alloc_full_test.cpp:126:10 in boost::container::test::test_allocation_shrink() 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../libs/container/test/alloc_basic_test.cpp:24:7 in basic_test() 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../libs/container/bench/bench_alloc.cpp:63:13 in void allocation_timing_test<char_holder<8u> >(unsigned int, unsigned int) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../libs/config/test/limits_test.cpp:97:8 in void print_hex_val<long double>(long double, char const*) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/test/impl/test_tools.ipp:298:9 in boost::test_tools::tt_detail::report_assertion(boost::test_tools::assertion_result const&, boost::unit_test::lazy_ostream const&, boost::unit_test::basic_cstring<char const>, unsigned long, boost::test_tools::tt_detail::tool_level, boost::test_tools::tt_detail::check_type, unsigned long, ...) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/spirit/home/qi/numeric/detail/real_impl.hpp:295:22 in bool boost::spirit::qi::detail::real_impl<double, boost::spirit::qi::ureal_policies<double> >::parse<char const*, double>(char const*&, char const* const&, double&, boost::spirit::qi::ureal_policies<double> const&) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/spirit/home/qi/numeric/detail/real_impl.hpp:295:22 in bool boost::spirit::qi::detail::real_impl<double, boost::spirit::qi::strict_real_policies<double> >::parse<char const*, double>(char const*&, char const* const&, double&, boost::spirit::qi::strict_real_policies<double> const&) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/spirit/home/qi/numeric/detail/real_impl.hpp:295:22 in bool boost::spirit::qi::detail::real_impl<double, boost::spirit::qi::real_policies<double> ::parse<std::__1::__wrap_iter<char*>, double>(std::__1::__wrap_iter<char*>&, std::__1::__wrap_iter<char*> const&, double&, boost::spirit::qi::real_policies<double> const&) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/numeric/odeint/stepper/bulirsch_stoer.hpp:202:13 in boost::numeric::odeint::controlled_step_result boost::numeric::odeint::bulirsch_stoer<boost::array<double, 3ul>, double, boost::array<double, 3ul>, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>::try_step<lorenz, boost::array<double, 3ul>, boost::array<double, 3ul>, boost::array<double, 3ul> >(lorenz, boost::array<double, 3ul> const&, boost::array<double, 3ul> const&, double&, boost::array<double, 3ul>&, double&) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/numeric/odeint/iterator/impl/adaptive_iterator_impl.hpp:105:17 in boost::numeric::odeint::adaptive_iterator_impl<boost::numeric::odeint::adaptive_iterator<boost::numeric::odeint::dummy_controlled_stepper, empty_system, boost::array<double, 1ul>, boost::numeric::odeint::controlled_stepper_tag>, boost::numeric::odeint::dummy_controlled_stepper, empty_system, boost::array<double, 1ul>, boost::numeric::odeint::detail::ode_state_iterator_tag, boost::numeric::odeint::controlled_stepper_tag>::increment() 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/multiprecision/gmp.hpp:368:7 in boost::multiprecision::backends::detail::gmp_float_imp<0u>::data() const 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/multiprecision/gmp.hpp:331:10 in boost::multiprecision::backends::detail::gmp_float_imp<25u>::~gmp_float_imp() 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/multiprecision/gmp.hpp:331:10 in boost::multiprecision::backends::detail::gmp_float_imp<100u>::~gmp_float_imp() 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/multiprecision/gmp.hpp:234:7 in boost::multiprecision::backends::detail::gmp_float_imp<0u>::str(long, unsigned int) const 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/multiprecision/gmp.hpp:1932:7 in boost::multiprecision::backends::gmp_rational::str(long, unsigned int) const 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/multiprecision/gmp.hpp:1827:10 in boost::multiprecision::backends::gmp_rational::operator=(unsigned long) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/multiprecision/gmp.hpp:152:10 in boost::multiprecision::backends::detail::gmp_float_imp<50u>::operator=(unsigned long) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/multiprecision/gmp.hpp:152:10 in boost::multiprecision::backends::detail::gmp_float_imp<2000u>::operator=(unsigned long) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/multiprecision/gmp.hpp:152:10 in boost::multiprecision::backends::detail::gmp_float_imp<0u>::operator=(unsigned long) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/multiprecision/gmp.hpp:1226:7 in boost::multiprecision::backends::gmp_int::str(long, unsigned int) const 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/multiprecision/gmp.hpp:1100:10 in boost::multiprecision::backends::gmp_int::operator=(long) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/multiprecision/gmp.hpp:1093:10 in boost::multiprecision::backends::gmp_int::operator=(unsigned long) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/graph/boykov_kolmogorov_max_flow.hpp:471:22 in boost::detail::bk_max_flow<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, Node<boost::detail::edge_desc_impl<boost::directed_tag, unsigned long> , Link<boost::detail::edge_desc_impl<boost::directed_tag, unsigned long> >, boost::no_property, boost::listS>, boost::adj_list_edge_property_map<boost::directed_tag, long, long&, unsigned long, Link<boost::detail::edge_desc_impl<boost::directed_tag, unsigned long> >, long Link<boost::detail::edge_desc_impl<boost::directed_tag, unsigned long> ::*>, boost::adj_list_edge_property_map<boost::directed_tag, long, long&, unsigned long, Link<boost::detail::edge_desc_impl<boost::directed_tag, unsigned long> , long Link<boost::detail::edge_desc_impl<boost::directed_tag, unsigned long> >::*>, boost::adj_list_edge_property_map<boost::directed_tag, boost::detail::edge_desc_impl<boost::directed_ 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/gil/color_base_algorithm.hpp:237:60 in bool boost::gil::detail::element_recursion<2>::static_equal<boost::gil::bit_aligned_pixel_reference<unsigned char, boost::mpl::vector3_c<int, 1, 2, 1>, boost::gil::layout<boost::mpl::vector3<boost::gil::red_t, boost::gil::green_t, boost::gil::blue_t>, boost::mpl::vector3_c<int, 2, 1, 0> >, true>, boost::gil::bit_aligned_pixel_reference<unsigned char, boost::mpl::vector3_c<int, 1, 2, 1>, boost::gil::layout<boost::mpl::vector3<boost::gil::red_t, boost::gil::green_t, boost::gil::blue_t>, boost::mpl::range_c<int, 0, 3> , true> >(boost::gil::bit_aligned_pixel_reference<unsigned char, boost::mpl::vector3_c<int, 1, 2, 1>, boost::gil::layout<boost::mpl::vector3<boost::gil::red_t, boost::gil::green_t, boost::gil::blue_t>, boost::mpl::vector3_c<int, 2, 1, 0> >, true> const&, boost::gil::bit_aligned_pixel_reference<unsigned char, boost::mpl::vector3_c<int, 1, 2, 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/context/execution_context.hpp:115:17 in boost::context::execution_context::activation_record::resume(bool) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/container/vector.hpp:457:10 in boost::container::container_detail::vector_alloc_holder<boost::container::allocator<int, 2u, 0u>, boost::move_detail::integral_constant<unsigned int, 2u> ::~vector_alloc_holder() 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/container/vector.hpp:2774:7 in boost::container::container_detail::vec_iterator<int*, false> boost::container::vector<int, boost::container::allocator<int, 2u, 0u> ::priv_forward_range_insert<boost::container::container_detail::insert_move_proxy<boost::container::allocator<int, 2u, 0u>, int*> >(int* const&, unsigned long, boost::container::container_detail::insert_move_proxy<boost::container::allocator<int, 2u, 0u>, int*>) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/container/vector.hpp:2774:7 in boost::container::container_detail::vec_iterator<boost::container::container_detail::pair<int, int>*, false> boost::container::vector<boost::container::container_detail::pair<int, int>, boost::container::allocator<boost::container::container_detail::pair<int, int>, 2u, 0u> ::priv_forward_range_insert<boost::container::container_detail::insert_move_proxy<boost::container::allocator<boost::container::container_detail::pair<int, int>, 2u, 0u>, boost::container::container_detail::pair<int, int>*> >(boost::container::container_detail::pair<int, int>* const&, unsigned long, boost::container::container_detail::insert_move_proxy<boost::container::allocator<boost::container::container_detail::pair<int, int>, 2u, 0u>, boost::container::container_detail::pair<int, int>*>) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/container/vector.hpp:2675:10 in boost::container::vector<MyInt, boost::container::allocator<MyInt, 2u, 0u> ::priv_shrink_to_fit(boost::move_detail::integral_constant<unsigned int, 2u>) 1 SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ben/development/boost/test/build/boost_root/status/../boost/container/vector.hpp:2604:11 in void boost::container::vector<int, boost::container::allocator<int, 2u, 0u> >::priv_push_back<int>(int&&) 1 SUMMARY: AddressSanitizer: stack-buffer-overflow /home/ben/development/boost/test/build/boost_root/status/../libs/local_function/test/return_derivative.cpp:22:9 in derivative(boost::function<int (int)>&, int)::boost_local_function_auxXfunctorX22X::operator()(int) 1 SUMMARY: AddressSanitizer: stack-buffer-overflow /home/ben/development/boost/test/build/boost_root/status/../boost/intrusive/detail/size_holder.hpp:35:14 in boost::intrusive::detail::size_holder<true, unsigned long, void>::get_size() const 1 SUMMARY: AddressSanitizer: global-buffer-overflow /home/ben/development/boost/test/build/boost_root/status/../boost/numeric/odeint/iterator/impl/times_iterator_impl.hpp:86:42 in boost::numeric::odeint::times_iterator_impl<boost::numeric::odeint::times_time_iterator<boost::numeric::odeint::dummy_stepper, empty_system, boost::array<double, 1ul>, double*, boost::numeric::odeint::stepper_tag>, boost::numeric::odeint::dummy_stepper, empty_system, boost::array<double, 1ul>, double*, boost::numeric::odeint::detail::ode_state_time_iterator_tag, boost::numeric::odeint::stepper_tag>::times_iterator_impl(boost::numeric::odeint::dummy_stepper, empty_system, boost::array<double, 1ul>&, double*, double*, double) 1 SUMMARY: AddressSanitizer: global-buffer-overflow /home/ben/development/boost/test/build/boost_root/status/../boost/numeric/odeint/iterator/impl/times_iterator_impl.hpp:86:42 in boost::numeric::odeint::times_iterator_impl<boost::numeric::odeint::times_iterator<boost::numeric::odeint::dummy_stepper, empty_system, boost::array<double, 1ul>, double*, boost::numeric::odeint::stepper_tag>, boost::numeric::odeint::dummy_stepper, empty_system, boost::array<double, 1ul>, double*, boost::numeric::odeint::detail::ode_state_iterator_tag, boost::numeric::odeint::stepper_tag>::times_iterator_impl(boost::numeric::odeint::dummy_stepper, empty_system, boost::array<double, 1ul>&, double*, double*, double) 1 SUMMARY: AddressSanitizer: container-overflow /usr/local/bin/../include/c++/v1/string:1664:39 in std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__is_long() const 1 SUMMARY: AddressSanitizer: container-overflow /home/ben/development/llvm/trunk/llvm/projects/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:188:3 in __interceptor_strcmp 1 SUMMARY: AddressSanitizer: 96 byte(s) leaked in 6 allocation(s). 1 SUMMARY: AddressSanitizer: 8 byte(s) leaked in 1 allocation(s). 1 SUMMARY: AddressSanitizer: 816 byte(s) leaked in 1 allocation(s). 1 SUMMARY: AddressSanitizer: 797943 byte(s) leaked in 357 allocation(s). 1 SUMMARY: AddressSanitizer: 796079 byte(s) leaked in 351 allocation(s). 1 SUMMARY: AddressSanitizer: 72000000 byte(s) leaked in 3000000 allocation(s). 1 SUMMARY: AddressSanitizer: 65536 byte(s) leaked in 1 allocation(s). 1 SUMMARY: AddressSanitizer: 56 byte(s) leaked in 4 allocation(s). 1 SUMMARY: AddressSanitizer: 324 byte(s) leaked in 3 allocation(s). 1 SUMMARY: AddressSanitizer: 24 byte(s) leaked in 2 allocation(s). 1 SUMMARY: AddressSanitizer: 20 byte(s) leaked in 2 allocation(s). 1 SUMMARY: AddressSanitizer: 1984 byte(s) leaked in 11 allocation(s). 1 SUMMARY: AddressSanitizer: 171 byte(s) leaked in 9 allocation(s). 1 SUMMARY: AddressSanitizer: 14256 byte(s) leaked in 99 allocation(s). 1 SUMMARY: AddressSanitizer: 12345 byte(s) leaked in 1 allocation(s). 1 SUMMARY: AddressSanitizer: 114688 byte(s) leaked in 7 allocation(s). 1 SUMMARY: AddressSanitizer: 104 byte(s) leaked in 2 allocation(s).
I'm happy to expand on any line that is less than useful. For the sake of sanity, I think I will also add this to the command line -Wno-unused-local-typedef, as the log contains 462603 matches, often times the warnings push more interesting things off beyond the 64Kb limit. Ben