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?

Reply via email to