Apache OpenOffice (AOO) Bugzilla – Issue 17908
IRIX: autodoc - type is inaccessible (Dyn::operator=)
Last modified: 2010-03-29 21:02:30 UTC
--- C++ prelinker: ../../../unxirxm3.pro/obj/namechai.o --- CC -DEFAULT:abi=n32:isa=mips3 -DEFAULT:abi=n32:isa=mips3 -c -I. -I. -I../inc -I../../../source/inc -I../../../inc -I../../../unx/inc -I../../../unxirxm3.pro/inc -I. -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/solver/645/unxirxm3.pro/inc/stl -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/solver/645/unxirxm3.pro/inc/external -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/solver/645/unxirxm3.pro/inc -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/solenv/unxirxm3/inc -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/solenv/inc -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/res -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/solver/645/unxirxm3.pro/inc/stl -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/solenv/inc/Xp31 -I/usr/java2/include -I/usr/java2/include/irix -I/usr/java2/include/native_threads/include -I. -I../../../res -I. -O2 -g -LANG:ansi-for-init-scope=OFF -LANG:std -LANG:libc_in_namespace_std=ON -LANG:exceptions=ON -DIRIX -DUNX -DVCL -DC730 -DC730 -DMIPS -DCVER=C730 -D_USE_NAMESPACE -DSTLPORT_VERSION=0x450 -D_USE_NAMESPACE=1 -DNEW_SOLAR -DSGI_STL -D__STL_THROW_RANGE_ERRORS -D__DMAKE -DUNIX -DCPPU_ENV=MipsPro -DSUPD=645 -DBUILD=8639 -DPRODUCT -DNDEBUG -DPRODUCT_FULL -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DEXCEPTIONS_ON -DCUI -DSOLAR_JAVA -DSRX645 -DMULTITHREAD -w -n32 /build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/autodoc/source/ary/cpp/namechai.cxx -o ../../../unxirxm3.pro/obj/namechai.o cc-1304 CC: ERROR File = /build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/autodoc/source/ary/cpp/namechai.hxx, Line = 117 "csv::Dyn<ary::cpp::ut::List_TplParameter> &csv::Dyn<ary::cpp::ut::List_TplParameter>::operator=(const csv::Dyn<ary::cpp::ut::List_TplParameter> &)" is inaccessible. pTemplate; ^ A template was detected during header processing. implicit generation of "ary::cpp::ut::NameSegment &ary::cpp::ut::NameSegment::operator=(const ary::cpp::ut::NameSegment &)" at line 245 of "/usr/include/CC/stl_algobase.h" instantiation of "ary::cpp::ut::NameSegment *std::__copy_backward(std::vector<ary::cpp::ut::NameSegme nt, std::allocator<ary::cpp::ut::NameSegment>>::value_type *, std::vector<ary::cpp::ut::NameSegment, std::allocator<ary::cpp::ut::NameSegment>>::value_type *, ary::cpp::ut::NameSegment *, std::random_access_iterator_tag, std::__copy_backward_dispatch<std::vector<ary::cpp::ut::N ameSegment, std::allocator<ary::cpp::ut::NameSegment>>::value_type *, ary::cpp::ut::NameSegment *, __type_traits<std::iterator_traits<ary::cpp::ut::NameSegm ent *>::value_type>::has_trivial_assignment_operator>::_Dista nce *)" at line 268 of "/usr/include/CC/stl_algobase.h" instantiation of "ary::cpp::ut::NameSegment *std::__copy_backward_dispatch<std::vector<ary::cpp::ut:: NameSegment, std::allocator<ary::cpp::ut::NameSegment>>::value_type *, ary::cpp::ut::NameSegment *, __type_traits<std::iterator_traits<ary::cpp::ut::NameSegm ent *>::value_type>::has_trivial_assignment_operator>::copy(s td::vector<ary::cpp::ut::NameSegment, std::allocator<ary::cpp::ut::NameSegment>>::value_type *, std::vector<ary::cpp::ut::NameSegment, std::allocator<ary::cpp::ut::NameSegment>>::value_type *, ary::cpp::ut::NameSegment *)" at line 296 of "/usr/include/CC/stl_algobase.h" instantiation of "ary::cpp::ut::NameSegment *std::copy_backward(std::vector<ary::cpp::ut::NameSegment , std::allocator<ary::cpp::ut::NameSegment>>::value_type *, std::vector<ary::cpp::ut::NameSegment, std::allocator<ary::cpp::ut::NameSegment>>::value_type *, ary::cpp::ut::NameSegment *)" at line 634 of "/usr/include/CC/stl_vector.h" instantiation of "void std::vector<ary::cpp::ut::NameSegment, std::allocator<ary::cpp::ut::NameSegment>>::_M_insert_aux (std::vector<ary::cpp::ut::NameSegment, std::allocator<ary::cpp::ut::NameSegment>>::iterator, const ary::cpp::ut::NameSegment &)" 1 error detected in the compilation of "/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/autodoc/source/ary/cpp/namechai.cxx".
Hmm, sure enough, the error message is correct, if we look in the preprocessed source we find these two operators: public: Dyn<DX> & operator=(DX *let_dpObject); private: Dyn<DX> & operator=( const Dyn<DX> & ); Moving this to the public section should fix this... although I wonder if there isn't some casting or something that could be done to make it use the public method. Dyn is defined in cosv/template/dyn.hxx Hmmm, in the header is a comment: /** Forbidden function! ------------------- Help ensure, that classes with dynamic pointers use a selfdefined copy constructor and operator=(). If the default versions of these functions are used, the compiler will throw an error. **/ Dyn<DX> & operator=( const Dyn<DX> & ); So, I guess moving that is not the right answer! Still... not really sure what the right solution is.
Higher up it says: Dyn forbids the CopyC'tor and operator=(). So you can't incidentally run into problems with compiler defined CopyC'tor or operator=() of the owning class. If you need those, you have to define them explicitely - as you should do anyway with all classes, that own members on the heap. But HOW do I do this? and why isn't it already done!
set target milestone to 1.1.1
Changing: Dyn<List_TplParameter> pTemplate; To: List_TplParameter* pTemplate; In autodoc/source/ary/cpp/namechai.hxx works around this... although not sure what else this will do! (leak?)
reassigned.
retarget
per issue 106845 sb removed the partial irix port, so this doesn't make sense in isolation anymore
closing