https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64251
Bug ID: 64251 Summary: [5 Regression] Chromium build error only with --enable-checking=yes Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org Created attachment 34237 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34237&action=edit unreduced testcase Chromium build fails with a compiler configured with: ../gcc/configure --disable-libsanitizer --disable-bootstrap --disable-libstdcxx-pch --disable-libvtv --disable-libitm --disable-libcilkrts --disable-libssp --disable-libgomp --disable-werror --disable-multilib --enable-languages=c,c++ markus@x4 Release % g++ -O2 -std=c++11 -c devtools_protocol_dispatcher.ii In file included from ../../content/browser/devtools/protocol/devtools_protocol_handler.h:8:0, from gen/content/browser/devtools/protocol/devtools_protocol_dispatcher.cc:11: gen/content/browser/devtools/protocol/devtools_protocol_dispatcher.h: In instantiation of ‘base::Value* content::devtools::CreateValue(const T&) [with T = base::DictionaryValue]’: gen/content/browser/devtools/protocol/devtools_protocol_dispatcher.h:45:31: required from ‘base::Value* content::devtools::CreateValue(std::vector<_RealType>) [with T = base::DictionaryValue]’ gen/content/browser/devtools/protocol/devtools_protocol_dispatcher.h:1140:36: required from here gen/content/browser/devtools/protocol/devtools_protocol_dispatcher.h:28:42: error: no matching function for call to ‘base::FundamentalValue::FundamentalValue(const base::DictionaryValue&)’ return new base::FundamentalValue(param); ^ In file included from ../../content/browser/devtools/protocol/devtools_protocol_client.h:9:0, from gen/content/browser/devtools/protocol/devtools_protocol_dispatcher.h:14, from ../../content/browser/devtools/protocol/devtools_protocol_handler.h:8, from gen/content/browser/devtools/protocol/devtools_protocol_dispatcher.cc:11: ../../base/values.h:123:12: note: candidate: base::FundamentalValue::FundamentalValue(double) explicit FundamentalValue(double in_value); ^ ../../base/values.h:123:12: note: no known conversion for argument 1 from ‘const base::DictionaryValue’ to ‘double’ ../../base/values.h:122:12: note: candidate: base::FundamentalValue::FundamentalValue(int) explicit FundamentalValue(int in_value); ^ ../../base/values.h:122:12: note: no known conversion for argument 1 from ‘const base::DictionaryValue’ to ‘int’ ../../base/values.h:121:12: note: candidate: base::FundamentalValue::FundamentalValue(bool) explicit FundamentalValue(bool in_value); ^ ../../base/values.h:121:12: note: no known conversion for argument 1 from ‘const base::DictionaryValue’ to ‘bool’ ../../base/values.h:119:7: note: candidate: base::FundamentalValue::FundamentalValue(const base::FundamentalValue&) class BASE_EXPORT FundamentalValue : public Value { ^ ../../base/values.h:119:7: note: no known conversion for argument 1 from ‘const base::DictionaryValue’ to ‘const base::FundamentalValue&’ In file included from ../../content/browser/devtools/protocol/devtools_protocol_client.h:9:0, from gen/content/browser/devtools/protocol/devtools_protocol_dispatcher.h:14, from ../../content/browser/devtools/protocol/devtools_protocol_handler.h:8, from gen/content/browser/devtools/protocol/devtools_protocol_dispatcher.cc:11: /usr/lib/gcc/x86_64-pc-linux-gnu/5.0.0/include/g++-v5/bits/stl_construct.h: In instantiation of ‘void std::_Construct(_T1*, _Args&& ...) [with _T1 = base::DictionaryValue; _Args = {const base::DictionaryValue&}]’: /usr/lib/gcc/x86_64-pc-linux-gnu/5.0.0/include/g++-v5/bits/stl_uninitialized.h:75:18: required from ‘static _ForwardIterator std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const base::DictionaryValue*, std::vector<base::DictionaryValue> >; _ForwardIterator = base::DictionaryValue*; bool _TrivialValueTypes = false]’ /usr/lib/gcc/x86_64-pc-linux-gnu/5.0.0/include/g++-v5/bits/stl_uninitialized.h:125:15: required from ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const base::DictionaryValue*, std::vector<base::DictionaryValue> >; _ForwardIterator = base::DictionaryValue*]’ /usr/lib/gcc/x86_64-pc-linux-gnu/5.0.0/include/g++-v5/bits/stl_uninitialized.h:280:37: required from ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const base::DictionaryValue*, std::vector<base::DictionaryValue> >; _ForwardIterator = base::DictionaryValue*; _Tp = base::DictionaryValue]’ /usr/lib/gcc/x86_64-pc-linux-gnu/5.0.0/include/g++-v5/bits/stl_vector.h:322:31: required from ‘std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = base::DictionaryValue; _Alloc = std::allocator<base::DictionaryValue>]’ gen/content/browser/devtools/protocol/devtools_protocol_dispatcher.h:1140:36: required from here ../../base/values.h:370:3: error: ‘base::DictionaryValue::DictionaryValue(const base::DictionaryValue&)’ is private DISALLOW_COPY_AND_ASSIGN(DictionaryValue); ^ In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/5.0.0/include/g++-v5/memory:64:0, from ../../base/threading/thread_collision_warner.h:8, from ../../base/memory/ref_counted.h:17, from ../../base/callback_internal.h:14, from ../../base/callback.h:9, from ../../content/browser/devtools/protocol/devtools_protocol_client.h:8, from gen/content/browser/devtools/protocol/devtools_protocol_dispatcher.h:14, from ../../content/browser/devtools/protocol/devtools_protocol_handler.h:8, from gen/content/browser/devtools/protocol/devtools_protocol_dispatcher.cc:11: /usr/lib/gcc/x86_64-pc-linux-gnu/5.0.0/include/g++-v5/bits/stl_construct.h:75:7: error: within this context { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); } ^ Bizarrely, the error vanishes with an -enable-checking=release compiler.