Status: Accepted
Owner:
plaztiks...@gmail.com
Labels: Type-Defect Priority-Critical
New issue 13 by
plaztiks...@gmail.com: mockitopp doesn't appear to compile
with clang 3.2
http://code.google.com/p/mockitopp/issues/detail?id=13
What steps will reproduce the problem?
1. get clang 3.2 on linux
2. use it to run mockitopp's own tests
What is the expected output? What do you see instead?
should compile/link with few/no warnings. instead I get errors:
In file included from
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/mock_object.hpp:4:
In file included from
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/stubbing/dynamic_object.hpp:5:
In file included from
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/stubbing/dynamic_vfunction.hpp:10:
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/util/tr1_tuple.hpp:30:15:
error:
field has incomplete
type 'mockitopp::detail::tr1::tuple<mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type>'
T tail_;
^
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/util/tr1_tuple.hpp:53:15:
note:
in instantiation of template
class 'mockitopp::detail::tr1::tuple_cons<mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple<mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type> >' requested here
: tuple_cons<T0, tuple<> >
^
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/util/tr1_tuple.hpp:57:24:
note:
in instantiation of template
class 'mockitopp::detail::tr1::tuple<mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type>' requested here
(t0, tuple<>
^
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/util/tr1_tuple.hpp:41:17:
note:
definition
of 'mockitopp::detail::tr1::tuple<mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type>' is not complete until the
closing '}'
struct tuple : tuple_cons<T0, tuple<T1, T2, T3, T4, T5, T6, T7,
T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, tuple_null_type> >
^
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/util/tr1_tuple.hpp:282:17:
error:
explicit specialization
of 'mockitopp::detail::tr1::tuple<mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type,
mockitopp::detail::tr1::tuple_null_type>' after instantiation
struct tuple< tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type >
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/util/tr1_tuple.hpp:57:24:
note:
implicit instantiation first required here
(t0, tuple<>
^
In file included from protocol/http/appblade/http_cfe_blade_test.cc:4:
In file included from
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/mock_object.hpp:4:
In file included from
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/stubbing/dynamic_object.hpp:5:
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/stubbing/dynamic_vfunction.hpp:197:43:
error:
no matching constructor for initialization of 'exact_tuple_type'
(aka 'tuple<>')
const exact_tuple_type args = exact_tuple_type();
^
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/util/tr1_tuple.hpp:55:13:
note:
candidate constructor not viable: requires single argument 't0', but
no arguments were provided
tuple(typename add_reference<typename add_const<T0
>::type>::type t0)
^
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/util/tr1_tuple.hpp:52:17:
note:
candidate constructor (the implicit copy constructor) not viable:
requires 1 argument, but 0 were provided
struct tuple<T0 , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type>
^
In file included from protocol/http/appblade/http_cfe_blade_test.cc:4:
In file included from
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/mock_object.hpp:4:
In file included from
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/stubbing/dynamic_object.hpp:5:
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/stubbing/dynamic_vfunction.hpp:212:43:
error:
no matching constructor for initialization of 'exact_tuple_type'
(aka 'tuple<>')
const exact_tuple_type args = exact_tuple_type();
^
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/util/tr1_tuple.hpp:55:13:
note:
candidate constructor not viable: requires single argument 't0', but
no arguments were provided
tuple(typename add_reference<typename add_const<T0
>::type>::type t0)
^
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/util/tr1_tuple.hpp:52:17:
note:
candidate constructor (the implicit copy constructor) not viable:
requires 1 argument, but 0 were provided
struct tuple<T0 , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type>
^
In file included from protocol/http/appblade/http_cfe_blade_test.cc:1:
In file included from protocol/http/appblade/http_cfe_blade.h:9:
In file included from ./cifs-auth/authlibs/src/common/data_holder.h:4:
In file included from
/work/mhargett/sport-trunk/rbtcore_install/include/misc/databuf.h:24:
In file included from
/work/mhargett/sport-trunk/rbtcore_install/include/misc/lock.h:13:
In file included from
/usr/home/nfs-readonly/common/boost/linux_sl/6/x86_64/4.4.5/1_49//include/boost/utility.hpp:16:
/usr/home/nfs-readonly/common/boost/linux_sl/6/x86_64/4.4.5/1_49//include/boost/checked_delete.hpp:34:5:
warning:
delete called on 'TransactionFactory' that is abstract but has
non-virtual destructor [-Wdelete-non-virtual-dtor]
delete x;
^
/usr/home/nfs-readonly/common/boost/linux_sl/6/x86_64/4.4.5/1_49//include/boost/smart_ptr/detail/shared_count.hpp:95:13:
note:
in instantiation of function template
specialization 'boost::checked_delete<TransactionFactory>' requested here
boost::checked_delete( p );
^
/usr/home/nfs-readonly/common/boost/linux_sl/6/x86_64/4.4.5/1_49//include/boost/smart_ptr/shared_ptr.hpp:183:44:
note:
in instantiation of function template
specialization 'boost::detail::shared_count::shared_count<TransactionFactory>'
requested here
explicit shared_ptr( Y * p ): px( p ), pn( p ) // Y must be complete
^
protocol/http/appblade/http_cfe_blade_test.cc:43:67: note: in instantiation
of function template
specialization 'boost::shared_ptr<TransactionFactory>::shared_ptr<TransactionFactory>'
requested here
shared_ptr<TransactionFactory> *shared_mock_txn_factory = new
shared_ptr<TransactionFactory>(&mock_txn_factory->getInstance());
^
In file included from protocol/http/appblade/http_cfe_blade_test.cc:4:
In file included from
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/mock_object.hpp:4:
In file included from
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/stubbing/dynamic_object.hpp:5:
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/stubbing/dynamic_vfunction.hpp:212:36:
error:
no matching constructor for initialization of 'const
exact_tuple_type' (aka 'const tuple<>')
const exact_tuple_type args = exact_tuple_type();
^
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/stubbing/proxy_vfunction.hpp:22:51:
note:
in instantiation of member
function 'mockitopp::detail::dynamic_vfunction<unsigned int
(SpliceInterface::*)()>::invoke' requested here
{ return __PAD_FOR_MOCK_spys[OFFSET]->invoke(); }
^
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/stubbing/proxy_vfunction.hpp:255:138:
note:
in instantiation of member
function 'mockitopp::detail::proxy_vfunction<0, unsigned int
(SpliceInterface::*)()>::invoke' requested here
virtual void* offset0() { return
horrible_cast<void*>(&proxy_vfunction<0, typename
remove_member_function_pointer_cv<M>::type>::invoke); }
^
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/stubbing/proxy_vfunction.hpp:251:37:
note:
in instantiation of member
function 'mockitopp::detail::proxy_vfunction_factory<unsigned int
(SpliceInterface::*)() const>::offset0' requested here
proxy_vfunction_factory s;
^
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/stubbing/dynamic_object.hpp:226:83:
note:
in instantiation of member
function 'mockitopp::detail::proxy_vfunction_factory<unsigned int
(SpliceInterface::*)() const>::get' requested here
vtable_actual_ptr->functions[offset] =
proxy_vfunction_factory<M>::get(ptr2member);
^
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/mock_object.hpp:39:19:
note:
in instantiation of function template
specialization 'mockitopp::detail::dynamic_object::define_function<unsigned
int (SpliceInterface::*)() const>' requested here
{ return define_function(ptr2member); }
^
protocol/http/appblade/http_cfe_blade_test.cc:46:17: note: in instantiation
of function template
specialization 'mockitopp::mock_object<SpliceInterface>::expect<unsigned
int (SpliceInterface::*)() const>' requested here
mock_splice.expect(&SpliceInterface::get_id).when().thenReturn(1);
^
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/util/tr1_tuple.hpp:55:13:
note:
candidate constructor not viable: requires single argument 't0', but
no arguments were provided
tuple(typename add_reference<typename add_const<T0
>::type>::type t0)
^
/work/mhargett/sport-trunk/protocol/lib/mockitopp/include/mockitopp/detail/util/tr1_tuple.hpp:52:17:
note:
candidate constructor (the implicit copy constructor) not viable:
requires 1 argument, but 0 were provided
struct tuple<T0 , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type>
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings