Issue 17908 - IRIX: autodoc - type is inaccessible (Dyn::operator=)
Summary: IRIX: autodoc - type is inaccessible (Dyn::operator=)
Status: CLOSED WONT_FIX
Alias: None
Product: porting
Classification: Code
Component: code (show other issues)
Version: OOo 1.1 RC
Hardware: SGI IRIX
: P3 Trivial (vote)
Target Milestone: AOO PleaseHelp
Assignee: sander_traveling
QA Contact: issues@porting
URL:
Keywords:
Depends on:
Blocks: 809
  Show dependency tree
 
Reported: 2003-08-06 05:20 UTC by nickb
Modified: 2010-03-29 21:02 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description nickb 2003-08-06 05:20:48 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".
Comment 1 nickb 2003-08-07 04:32:47 UTC
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.
Comment 2 nickb 2003-08-07 04:40:57 UTC
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!
Comment 3 Martin Hollmichel 2003-08-07 15:56:45 UTC
set target milestone to 1.1.1
Comment 4 nickb 2003-09-11 02:05:16 UTC
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?)
Comment 5 Martin Hollmichel 2003-10-17 08:21:30 UTC
reassigned.
Comment 6 sander_traveling 2003-12-04 04:20:19 UTC
retarget
Comment 7 caolanm 2010-03-29 21:02:12 UTC
per issue 106845 sb removed the partial irix port, so this doesn't make sense in
isolation anymore
Comment 8 caolanm 2010-03-29 21:02:30 UTC
closing