From: Arnaud Giersch Date: Tue, 4 May 2021 07:19:13 +0000 (+0200) Subject: Workaround false alarm stack-use-after-scope from Asan with operator<<. X-Git-Tag: v3.28~360 X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/e81556ea5cd06eb03b103fbd1bcdd64a33b01086?ds=sidebyside Workaround false alarm stack-use-after-scope from Asan with operator<<. Seen with tesh-s4u-activity-lifecycle: ==3411378==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7fd4787b5f60 at pc 0x7fd4869e2acb bp 0x7fd4787b5530 sp 0x7fd4787b4ce0 READ of size 5 at 0x7fd4787b5f60 thread T0 #0 0x7fd4869e2aca in printf_common ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors_format.inc:490 #1 0x7fd4869e4115 in __interceptor_vsnprintf ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:1647 #2 0x7fd4858f932e (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xea32e) #3 0x7fd4859272eb in std::ostreambuf_iterator > std::num_put > >::_M_insert_float(std::ostreambuf_iterator >, std::ios_base&, char, char, double) const (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x1182eb) #4 0x7fd4859347b9 in std::ostream& std::ostream::_M_insert(double) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x1257b9) #5 0x55a66a474e0a in std::ostream::operator<<(double) /usr/include/c++/10/ostream:221 #6 0x55a66a474e0a in Catch::ReusableStringStream& Catch::ReusableStringStream::operator<< (double const&) ../src/include/catch.hpp:1449 #7 0x55a66a474e0a in Catch::MessageBuilder& Catch::MessageBuilder::operator<< (double const&) ../src/include/catch.hpp:2632 #8 0x55a66a474e0a in bool tester_wait<0, boost::intrusive_ptr >(boost::intrusive_ptr const&) ../teshsuite/s4u/activity-lifecycle/testing_test-wait.cpp:44 #9 0x55a66a63f0af in operator() ../teshsuite/s4u/activity-lifecycle/testing_test-wait.cpp:129 #10 0x7fd485d7bd51 in std::function::operator()() const /usr/include/c++/10/bits/std_function.h:622 #11 0x7fd485d7bd51 in simgrid::kernel::context::Context::operator()() const ../src/kernel/context/Context.hpp:65 #12 0x7fd485d7bd51 in smx_ctx_wrapper ../src/kernel/context/ContextSwapped.cpp:51 #13 0x7fd485e09e48 in simgrid::kernel::context::BoostContext::wrapper(boost::context::detail::transfer_t) ../src/kernel/context/ContextBoost.cpp:49 #14 0x7fd4854be19e in make_fcontext (/usr/lib/x86_64-linux-gnu/libboost_context.so.1.74.0+0x119e) --- diff --git a/teshsuite/s4u/activity-lifecycle/testing_test-wait.cpp b/teshsuite/s4u/activity-lifecycle/testing_test-wait.cpp index 2668936623..2b8f82fe20 100644 --- a/teshsuite/s4u/activity-lifecycle/testing_test-wait.cpp +++ b/teshsuite/s4u/activity-lifecycle/testing_test-wait.cpp @@ -41,7 +41,7 @@ template bool tester_wait(const Activity& acti ret = true; } catch (const simgrid::TimeoutException& e) { XBT_DEBUG("wait_for() timed out (%s)", e.what()); - INFO("wait_for() timeout should expire at expected date: " << timeout); + INFO("wait_for() timeout should expire at expected date: " + std::to_string(timeout)); REQUIRE(simgrid::s4u::Engine::get_clock() == Approx(timeout)); ret = false; } catch (const simgrid::Exception& e) {