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.

Reply via email to