https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84286
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |WAITING Last reconfirmed| |2018-02-16 Ever confirmed|0 |1 --- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> --- With -O0 I see: marxin@marxinbox:~/Programming/osc/ibs/home:marxin:gcc8-incubator/chromium/chromium-64.0.3282.140> val ./out/Release/gn gen out/Release ==7339== Memcheck, a memory error detector ==7339== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==7339== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info ==7339== Command: ./out/Release/gn gen out/Release ==7339== ==7339== Invalid read of size 8 ==7339== at 0x4C34E2C: memmove (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==7339== by 0x4F0CB5: void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) (basic_string.tcc:225) ==7339== by 0x5E4D6C: SourceFile::SourceFile(SourceFile const&) (source_file.h:22) ==7339== by 0x6156F2: std::_Head_base<3ul, SourceFile, false>::_Head_base(SourceFile const&) (tuple:126) ==7339== by 0x6155C8: std::_Tuple_impl<3ul, SourceFile, InputFile*>::_Tuple_impl<SourceFile const&, InputFile*, void>(SourceFile const&, InputFile*&&) (tuple:218) ==7339== by 0x615361: std::_Tuple_impl<2ul, BuildSettings const*, SourceFile, InputFile*>::_Tuple_impl<BuildSettings const*&, SourceFile const&, InputFile*, void>(BuildSettings const*&, SourceFile const&, InputFile*&&) (tuple:218) ==7339== by 0x615029: std::_Tuple_impl<1ul, LocationRange, BuildSettings const*, SourceFile, InputFile*>::_Tuple_impl<LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*, void>(LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*&&) (tuple:218) ==7339== by 0x614AE7: std::_Tuple_impl<0ul, scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*>::_Tuple_impl<InputFileManager*, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*, void>(InputFileManager*&&, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*&&) (tuple:218) ==7339== by 0x6140B7: std::tuple<scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*>::tuple<InputFileManager*, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*, true>(InputFileManager*&&, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*&&) (tuple:647) ==7339== by 0x6132D1: base::internal::BindState<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*>::BindState<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), InputFileManager*, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*>(std::integral_constant<bool, false>, void (*)(), void (InputFileManager::*&&)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), InputFileManager*&&, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*&&) (bind_internal.h:467) ==7339== by 0x6123C9: base::internal::BindState<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*>::BindState<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), InputFileManager*, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*>(void (*)(), void (InputFileManager::*&&)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), InputFileManager*&&, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*&&) (bind_internal.h:440) ==7339== by 0x6116AC: base::RepeatingCallback<base::internal::BindTypeHelper<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), InputFileManager*, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*>::UnboundRunType> base::BindRepeating<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), InputFileManager*, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*>(void (InputFileManager::*&&)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), InputFileManager*&&, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*&&) (bind.h:230) ==7339== Address 0x6511038 is 8 bytes before a block of size 101,873,569 alloc'd ==7339== at 0x4C2E6FF: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==7339== by 0x4F0C6E: void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) (basic_string.tcc:219) ==7339== by 0x5E4D6C: SourceFile::SourceFile(SourceFile const&) (source_file.h:22) ==7339== by 0x6156F2: std::_Head_base<3ul, SourceFile, false>::_Head_base(SourceFile const&) (tuple:126) ==7339== by 0x6155C8: std::_Tuple_impl<3ul, SourceFile, InputFile*>::_Tuple_impl<SourceFile const&, InputFile*, void>(SourceFile const&, InputFile*&&) (tuple:218) ==7339== by 0x615361: std::_Tuple_impl<2ul, BuildSettings const*, SourceFile, InputFile*>::_Tuple_impl<BuildSettings const*&, SourceFile const&, InputFile*, void>(BuildSettings const*&, SourceFile const&, InputFile*&&) (tuple:218) ==7339== by 0x615029: std::_Tuple_impl<1ul, LocationRange, BuildSettings const*, SourceFile, InputFile*>::_Tuple_impl<LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*, void>(LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*&&) (tuple:218) ==7339== by 0x614AE7: std::_Tuple_impl<0ul, scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*>::_Tuple_impl<InputFileManager*, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*, void>(InputFileManager*&&, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*&&) (tuple:218) ==7339== by 0x6140B7: std::tuple<scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*>::tuple<InputFileManager*, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*, true>(InputFileManager*&&, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*&&) (tuple:647) ==7339== by 0x6132D1: base::internal::BindState<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*>::BindState<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), InputFileManager*, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*>(std::integral_constant<bool, false>, void (*)(), void (InputFileManager::*&&)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), InputFileManager*&&, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*&&) (bind_internal.h:467) ==7339== by 0x6123C9: base::internal::BindState<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*>::BindState<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), InputFileManager*, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*>(void (*)(), void (InputFileManager::*&&)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), InputFileManager*&&, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*&&) (bind_internal.h:440) ==7339== by 0x6116AC: base::RepeatingCallback<base::internal::BindTypeHelper<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), InputFileManager*, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*>::UnboundRunType> base::BindRepeating<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), InputFileManager*, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*>(void (InputFileManager::*&&)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), InputFileManager*&&, LocationRange const&, BuildSettings const*&, SourceFile const&, InputFile*&&) (bind.h:230) ==7339== ==7339== Thread 2 worker_Worker1/7: ==7339== Invalid write of size 1 ==7339== at 0x537336F: assign (char_traits.h:285) ==7339== by 0x537336F: _M_set_length (basic_string.h:206) ==7339== by 0x537336F: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::clear() (basic_string.h:1005) ==7339== by 0x57F920: base::ReadFileToStringWithMaxSize(base::FilePath const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, unsigned long) (file_util.cc:131) ==7339== by 0x57FAAD: base::ReadFileToString(base::FilePath const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) (file_util.cc:165) ==7339== by 0x66FA05: InputFile::Load(base::FilePath const&) (input_file.cc:23) ==7339== by 0x60ECC3: (anonymous namespace)::DoLoadFile(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*, std::vector<Token, std::allocator<Token> >*, std::unique_ptr<ParseNode, std::default_delete<ParseNode> >*, Err*) (input_file_manager.cc:45) ==7339== by 0x60FE7D: InputFileManager::LoadFile(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*, Err*) (input_file_manager.cc:275) ==7339== by 0x60FDB6: InputFileManager::BackgroundLoadFile(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*) (input_file_manager.cc:264) ==7339== by 0x614A5E: void base::internal::FunctorTraits<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), void>::Invoke<scoped_refptr<InputFileManager> const&, LocationRange const&, BuildSettings const* const&, SourceFile const&, InputFile* const&>(void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), scoped_refptr<InputFileManager> const&, LocationRange const&, BuildSettings const* const&, SourceFile const&, InputFile* const&) (bind_internal.h:194) ==7339== by 0x613FE3: void base::internal::InvokeHelper<false, void>::MakeItSo<void (InputFileManager::* const&)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), scoped_refptr<InputFileManager> const&, LocationRange const&, BuildSettings const* const&, SourceFile const&, InputFile* const&>(void (InputFileManager::* const&)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), scoped_refptr<InputFileManager> const&, LocationRange const&, BuildSettings const* const&, SourceFile const&, InputFile* const&) (bind_internal.h:277) ==7339== by 0x6130F5: void base::internal::Invoker<base::internal::BindState<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*>, void ()>::RunImpl<void (InputFileManager::* const&)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), std::tuple<scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*> const&, 0ul, 1ul, 2ul, 3ul, 4ul>(void (InputFileManager::* const&)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), std::tuple<scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*> const&, std::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul>) (bind_internal.h:351) ==7339== by 0x612329: base::internal::Invoker<base::internal::BindState<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*>, void ()>::Run(base::internal::BindStateBase*) (bind_internal.h:333) ==7339== by 0x40C6EB: base::RepeatingCallback<void ()>::Run() const & (callback.h:94) ==7339== Address 0x5b is not stack'd, malloc'd or (recently) free'd ==7339== ==7339== ==7339== Process terminating with default action of signal 11 (SIGSEGV): dumping core ==7339== Access not within mapped region at address 0x5B ==7339== at 0x537336F: assign (char_traits.h:285) ==7339== by 0x537336F: _M_set_length (basic_string.h:206) ==7339== by 0x537336F: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::clear() (basic_string.h:1005) ==7339== by 0x57F920: base::ReadFileToStringWithMaxSize(base::FilePath const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, unsigned long) (file_util.cc:131) ==7339== by 0x57FAAD: base::ReadFileToString(base::FilePath const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) (file_util.cc:165) ==7339== by 0x66FA05: InputFile::Load(base::FilePath const&) (input_file.cc:23) ==7339== by 0x60ECC3: (anonymous namespace)::DoLoadFile(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*, std::vector<Token, std::allocator<Token> >*, std::unique_ptr<ParseNode, std::default_delete<ParseNode> >*, Err*) (input_file_manager.cc:45) ==7339== by 0x60FE7D: InputFileManager::LoadFile(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*, Err*) (input_file_manager.cc:275) ==7339== by 0x60FDB6: InputFileManager::BackgroundLoadFile(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*) (input_file_manager.cc:264) ==7339== by 0x614A5E: void base::internal::FunctorTraits<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), void>::Invoke<scoped_refptr<InputFileManager> const&, LocationRange const&, BuildSettings const* const&, SourceFile const&, InputFile* const&>(void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), scoped_refptr<InputFileManager> const&, LocationRange const&, BuildSettings const* const&, SourceFile const&, InputFile* const&) (bind_internal.h:194) ==7339== by 0x613FE3: void base::internal::InvokeHelper<false, void>::MakeItSo<void (InputFileManager::* const&)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), scoped_refptr<InputFileManager> const&, LocationRange const&, BuildSettings const* const&, SourceFile const&, InputFile* const&>(void (InputFileManager::* const&)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), scoped_refptr<InputFileManager> const&, LocationRange const&, BuildSettings const* const&, SourceFile const&, InputFile* const&) (bind_internal.h:277) ==7339== by 0x6130F5: void base::internal::Invoker<base::internal::BindState<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*>, void ()>::RunImpl<void (InputFileManager::* const&)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), std::tuple<scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*> const&, 0ul, 1ul, 2ul, 3ul, 4ul>(void (InputFileManager::* const&)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), std::tuple<scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*> const&, std::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul>) (bind_internal.h:351) ==7339== by 0x612329: base::internal::Invoker<base::internal::BindState<void (InputFileManager::*)(LocationRange const&, BuildSettings const*, SourceFile const&, InputFile*), scoped_refptr<InputFileManager>, LocationRange, BuildSettings const*, SourceFile, InputFile*>, void ()>::Run(base::internal::BindStateBase*) (bind_internal.h:333) ==7339== by 0x40C6EB: base::RepeatingCallback<void ()>::Run() const & (callback.h:94) ==7339== If you believe this happened as a result of a stack ==7339== overflow in your program's main thread (unlikely but ==7339== possible), you can try to increase the size of the ==7339== main thread stack using the --main-stacksize= flag. ==7339== The main thread stack size used in this run was 8388608. ==7339== ==7339== HEAP SUMMARY: ==7339== in use at exit: 102,029,864 bytes in 670 blocks ==7339== total heap usage: 1,218 allocs, 548 frees, 408,079,140 bytes allocated ==7339== ==7339== Thread 1: ==7339== 288 bytes in 1 blocks are possibly lost in loss record 155 of 207 ==7339== at 0x4C300A5: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==7339== by 0x4012361: allocate_dtv (in /lib64/ld-2.26.so) ==7339== by 0x4012CED: _dl_allocate_tls (in /lib64/ld-2.26.so) ==7339== by 0x5B4114C: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.26.so) ==7339== by 0x47562A: base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) (platform_thread_posix.cc:114) ==7339== by 0x4758C9: base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) (platform_thread_posix.cc:199) ==7339== by 0x440C57: base::SimpleThread::Start() (simple_thread.cc:34) ==7339== by 0x432878: base::SequencedWorkerPool::Worker::Worker(scoped_refptr<base::SequencedWorkerPool>, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (sequenced_worker_pool.cc:577) ==7339== by 0x43668B: base::SequencedWorkerPool::Inner::FinishStartingAdditionalThread(int) (sequenced_worker_pool.cc:1376) ==7339== by 0x4339FD: base::SequencedWorkerPool::Inner::PostTask(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, base::SequencedWorkerPool::SequenceToken, base::SequencedWorkerPool::WorkerShutdown, base::Location const&, base::OnceCallback<void ()>, base::TimeDelta) (sequenced_worker_pool.cc:763) ==7339== by 0x436F46: base::SequencedWorkerPool::PostWorkerTaskWithShutdownBehavior(base::Location const&, base::OnceCallback<void ()>, base::SequencedWorkerPool::WorkerShutdown) (sequenced_worker_pool.cc:1524) ==7339== by 0x6B31F5: Scheduler::ScheduleWork(base::RepeatingCallback<void ()> const&) (scheduler.cc:136) ==7339== ==7339== LEAK SUMMARY: ==7339== definitely lost: 0 bytes in 0 blocks ==7339== indirectly lost: 0 bytes in 0 blocks ==7339== possibly lost: 288 bytes in 1 blocks ==7339== still reachable: 102,029,576 bytes in 669 blocks ==7339== suppressed: 0 bytes in 0 blocks ==7339== Reachable blocks (those to which a pointer was found) are not shown. ==7339== To see them, rerun with: --leak-check=full --show-leak-kinds=all Thus probably caused by the Wabi. Marek?