Thread overview
Problem with fixed_array copy constructor (gcc-3.4.6)
Jan 22, 2007
Neal Becker
Jan 22, 2007
Matthew Wilson
Jan 22, 2007
Neal Becker
Jan 23, 2007
Matthew Wilson
Jan 23, 2007
Neal Becker
Jan 23, 2007
Matthew Wilson
Jan 23, 2007
Matthew Wilson
Jan 23, 2007
Matthew Wilson
Jan 23, 2007
Neal Becker
Jan 23, 2007
Matthew Wilson
January 22, 2007
My code compiles fine with gcc-4.1.1, but chokes on gcc-3.4.6.  I'm not sure what's going on here:

/usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp: In copy constructor `stlsoft::fixed_array_3d<T, A, P, R>::fixed_array_3d(const stlsoft::fixed_array_3d<T, A, P, R>&) [with T = double, A = std::allocator<double>, P = stlsoft::do_construction<double>, bool R =  false]':
/usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1838:
  instantiated from `typename stlsoft::fixed_array_4d<T, A, P, R>::dimension_element_type stlsoft::fixed_array_4d<T, A, P, R>::operator[](stlsoft::ss_size_t) [with T = double, A = std::allocator<double>, P = stlsoft::do_construction<double>, bool R =  true]'
idma/turbo_dec_1_10_2.H:387:
  instantiated from `void turbo_dec_1_10<flt_t>::compute_gamma(const apriori_t&, const rec_enc_parity_t&, const rec_tail_t&, gamma_t&, gamma2_t&) [with apriori_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_initialisation_never,  true>, rec_enc_parity_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, rec_tail_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, gamma_t = stlsoft::fixed_array_3d<double, std::allocator<double>, stlsoft::do_construction<double>,  true>, gamma2_t = stlsoft::fixed_array_4d<double, std::allocator<double>, stlsoft::do_construction<double>,  true>, flt_t = double]'
idma/turbo_dec_1_10_2.H:342:
  instantiated from `void turbo_dec_1_10<flt_t>::turbo_constituent_dec(const apriori_t&, const rec_enc_parity_t&, const rec_tail_t&, info_extrinsic_t&, parity_extrinsic_t&, tail_extrinsic_t&) [with apriori_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_initialisation_never,  true>, rec_enc_parity_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, rec_tail_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, info_extrinsic_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>,  true>, parity_extrinsic_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, tail_extrinsic_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, flt_t = double]'
idma/turbo_dec_1_10_2.H:250:
   instantiated from `void turbo_dec_1_10<flt_t>::iter(const in_t&, flt_t) [with in_t = boost::numeric::ublas::vector<double, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, flt_t = double]'
idma/turbo_dec_1_10.cc:192:
   instantiated from here
/usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1441: error: creating array with size zero (`0')

The line that triggered the error:
        gamma2[0][k][m][0] = gamma[k][m][1];

I'm sorry, but I can't post the source for this.  Perhaps someone has encountered a similar problem?
January 22, 2007
"Neal Becker" <ndbecker2@gmail.com> wrote in message news:ep3233$11ba$1@digitaldaemon.com...
> My code compiles fine with gcc-4.1.1, but chokes on gcc-3.4.6.  I'm not
sure what's going on here:
>
> /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp: In copy
constructor `stlsoft::fixed_array_3d<T, A, P, R>::fixed_array_3d(const stlsoft::fixed_array_3d<T, A, P, R>&) [with T = double, A = std::allocator<double>, P = stlsoft::do_construction<double>, bool R = false]':
> /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1838:
>   instantiated from `typename stlsoft::fixed_array_4d<T, A, P,
R>::dimension_element_type stlsoft::fixed_array_4d<T, A, P, R>::operator[](stlsoft::ss_size_t) [with T = double, A = std::allocator<double>, P = stlsoft::do_construction<double>, bool R = true]'
> idma/turbo_dec_1_10_2.H:387:
>   instantiated from `void turbo_dec_1_10<flt_t>::compute_gamma(const
apriori_t&, const rec_enc_parity_t&, const rec_tail_t&, gamma_t&, gamma2_t&) [with apriori_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_initialisation_never,  true>, rec_enc_parity_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, rec_tail_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, gamma_t = stlsoft::fixed_array_3d<double, std::allocator<double>, stlsoft::do_construction<double>,  true>, gamma2_t = stlsoft::fixed_array_4d<double, std::allocator<double>, stlsoft::do_construction<double>,  true>, flt_t = double]'
> idma/turbo_dec_1_10_2.H:342:
>   instantiated from `void
turbo_dec_1_10<flt_t>::turbo_constituent_dec(const apriori_t&, const rec_enc_parity_t&, const rec_tail_t&, info_extrinsic_t&, parity_extrinsic_t&, tail_extrinsic_t&) [with apriori_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_initialisation_never,  true>, rec_enc_parity_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, rec_tail_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, info_extrinsic_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>,  true>, parity_extrinsic_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, tail_extrinsic_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, flt_t = double]'
> idma/turbo_dec_1_10_2.H:250:
>    instantiated from `void turbo_dec_1_10<flt_t>::iter(const in_t&, flt_t)
[with in_t = boost::numeric::ublas::vector<double, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, flt_t = double]'
> idma/turbo_dec_1_10.cc:192:
>    instantiated from here
> /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1441:
error: creating array with size zero (`0')
>
> The line that triggered the error:
>         gamma2[0][k][m][0] = gamma[k][m][1];
>
> I'm sorry, but I can't post the source for this.  Perhaps someone has
encountered a similar problem?

It's a bit hard to tell from the report.

Can you post a chopped down version, or a little sample that brings out the same bug?

btw, did the fe.N mods fix your 64-bit build problem? If so, I'll try and get a new Pantheios release out asap.

Cheers

Matthew


January 22, 2007
Matthew Wilson wrote:

>
> btw, did the fe.N mods fix your 64-bit build problem? If so, I'll try and get a new Pantheios release out asap.
> 

Looks like it gets further.  Now stops here:
g++   -c -Wall -pedantic -Wno-long-long -Wno-unused-value -Werror  -O1   -D_REENTRANT  -D_DEBUG -UNDEBUG  -Dunix  -I../../include -I"/usr/local/src/stlsoft/include"    -o test_api.debug.o ../../test/test_api/test_api.cpp
../../test/test_api/test_api.cpp: In function ‘stlsoft::basic_shim_string<char, 64ul, false, std::allocator<char>, stlsoft::stlsoft_char_traits<char> > stlsoft::c_str_data_a(const Thingy&)’:
../../test/test_api/test_api.cpp:142: error: cast from ‘const Thingy*’ to ‘unsigned int’ loses precision
../../test/test_api/test_api.cpp: In function ‘std::string Thingy_to_string(const Thingy*)’:
../../test/test_api/test_api.cpp:168: error: cast from ‘const Thingy**’ to ‘unsigned int’ loses precision
make: *** [test_api.debug.o] Error 1

January 23, 2007
> The line that triggered the error:
>         gamma2[0][k][m][0] = gamma[k][m][1];
> 
> I'm sorry, but I can't post the source for this.  Perhaps someone has encountered a similar problem?

I'm trying to have a go at this, but without knowing what gamma and gamm2 are, it's pretty near impossible. Can you tell me how they're defined?

Thanks

Matthew
January 23, 2007
Try this patch.

No guarantees ... ;-)

If it works, I'll release a beta 44.

Cheers

Matthew


"Neal Becker" <ndbecker2@gmail.com> wrote in message news:ep3233$11ba$1@digitaldaemon.com...
> My code compiles fine with gcc-4.1.1, but chokes on gcc-3.4.6.  I'm not
sure what's going on here:
>
> /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp: In copy
constructor `stlsoft::fixed_array_3d<T, A, P, R>::fixed_array_3d(const stlsoft::fixed_array_3d<T, A, P, R>&) [with T = double, A = std::allocator<double>, P = stlsoft::do_construction<double>, bool R = false]':
> /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1838:
>   instantiated from `typename stlsoft::fixed_array_4d<T, A, P,
R>::dimension_element_type stlsoft::fixed_array_4d<T, A, P, R>::operator[](stlsoft::ss_size_t) [with T = double, A = std::allocator<double>, P = stlsoft::do_construction<double>, bool R = true]'
> idma/turbo_dec_1_10_2.H:387:
>   instantiated from `void turbo_dec_1_10<flt_t>::compute_gamma(const
apriori_t&, const rec_enc_parity_t&, const rec_tail_t&, gamma_t&, gamma2_t&) [with apriori_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_initialisation_never,  true>, rec_enc_parity_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, rec_tail_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, gamma_t = stlsoft::fixed_array_3d<double, std::allocator<double>, stlsoft::do_construction<double>,  true>, gamma2_t = stlsoft::fixed_array_4d<double, std::allocator<double>, stlsoft::do_construction<double>,  true>, flt_t = double]'
> idma/turbo_dec_1_10_2.H:342:
>   instantiated from `void
turbo_dec_1_10<flt_t>::turbo_constituent_dec(const apriori_t&, const rec_enc_parity_t&, const rec_tail_t&, info_extrinsic_t&, parity_extrinsic_t&, tail_extrinsic_t&) [with apriori_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_initialisation_never,  true>, rec_enc_parity_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, rec_tail_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, info_extrinsic_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>,  true>, parity_extrinsic_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, tail_extrinsic_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, flt_t = double]'
> idma/turbo_dec_1_10_2.H:250:
>    instantiated from `void turbo_dec_1_10<flt_t>::iter(const in_t&, flt_t)
[with in_t = boost::numeric::ublas::vector<double, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, flt_t = double]'
> idma/turbo_dec_1_10.cc:192:
>    instantiated from here
> /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1441:
error: creating array with size zero (`0')
>
> The line that triggered the error:
>         gamma2[0][k][m][0] = gamma[k][m][1];
>
> I'm sorry, but I can't post the source for this.  Perhaps someone has
encountered a similar problem?



January 23, 2007
"Neal Becker" <ndbecker2@gmail.com> wrote in message news:ep3iho$1mp7$1@digitaldaemon.com...
> Matthew Wilson wrote:
>
> >
> > btw, did the fe.N mods fix your 64-bit build problem? If so, I'll try
and
> > get a new Pantheios release out asap.
> >
>
> Looks like it gets further.  Now stops here:
>
+   -c -Wall -pedantic -Wno-long-long -Wno-unused-value -Werror  -O1   -D_RE ENTRANT  -D_DEBUG -UNDEBUG  -Dunix  -I../../include -I"/usr/local/src/stlsof t/include"    -o test_api.debug.o ../../test/test_api/test_api.cpp
> ../../test/test_api/test_api.cpp: In function
'stlsoft::basic_shim_string<char, 64ul, false, std::allocator<char>, stlsoft::stlsoft_char_traits<char> > stlsoft::c_str_data_a(const Thingy&)':
> ../../test/test_api/test_api.cpp:142: error: cast from 'const Thingy*' to
'unsigned int' loses precision
> ../../test/test_api/test_api.cpp: In function 'std::string
Thingy_to_string(const Thingy*)':
> ../../test/test_api/test_api.cpp:168: error: cast from 'const Thingy**' to
'unsigned int' loses precision
> make: *** [test_api.debug.o] Error 1

Well, the good news is that we seem to be out of the libraries, and into the test programs (about which I'm less bothered).

I'll check into it.

A favour, if I may. Could you execute the following build targets on your
64-bit system:
    "make -f makefile.unix build.libs.core"
    "make -f makefile.unix build.libs.fe"
    "make -f makefile.unix build.libs.be"
    "make -f makefile.unix build.examples"

and let me know which, if any, have any problems.

Thanks

Matthew


January 23, 2007
Matthew Wilson wrote:

> 
> "Neal Becker" <ndbecker2@gmail.com> wrote in message news:ep3iho$1mp7$1@digitaldaemon.com...
>> Matthew Wilson wrote:
>>
>> >
>> > btw, did the fe.N mods fix your 64-bit build problem? If so, I'll try
> and
>> > get a new Pantheios release out asap.
>> >
>>
>> Looks like it gets further.  Now stops here:
>>
> +   -c -Wall -pedantic -Wno-long-long -Wno-unused-value -Werror  -O1
> -D_RE
> ENTRANT  -D_DEBUG -UNDEBUG  -Dunix  -I../../include
> -I"/usr/local/src/stlsof
> t/include"    -o test_api.debug.o ../../test/test_api/test_api.cpp
>> ../../test/test_api/test_api.cpp: In function
> 'stlsoft::basic_shim_string<char, 64ul, false, std::allocator<char>, stlsoft::stlsoft_char_traits<char> > stlsoft::c_str_data_a(const Thingy&)':
>> ../../test/test_api/test_api.cpp:142: error: cast from 'const Thingy*' to
> 'unsigned int' loses precision
>> ../../test/test_api/test_api.cpp: In function 'std::string
> Thingy_to_string(const Thingy*)':
>> ../../test/test_api/test_api.cpp:168: error: cast from 'const Thingy**' to
> 'unsigned int' loses precision
>> make: *** [test_api.debug.o] Error 1
> 
> Well, the good news is that we seem to be out of the libraries, and into the test programs (about which I'm less bothered).
> 
> I'll check into it.
> 
> A favour, if I may. Could you execute the following build targets on your
> 64-bit system:
>     "make -f makefile.unix build.libs.core"
>     "make -f makefile.unix build.libs.fe"
>     "make -f makefile.unix build.libs.be"
>     "make -f makefile.unix build.examples"
> 
> and let me know which, if any, have any problems.
> 

No problems.
January 23, 2007
Matthew Wilson wrote:

> Try this patch.
> 
> No guarantees ... ;-)
> 
> If it works, I'll release a beta 44.

Yes, it seems to compile now (at least).

In response to your other question,
  stlsoft::fixed_array_3d<flt_t> gamma (MSG_BITS + CONST_LEN, DEC_STATES, 2);
  stlsoft::fixed_array_4d<flt_t> gamma2 (E, MSG_BITS + CONST_LEN, DEC_STATES, 2);

> 
> Cheers
> 
> Matthew
> 
> 
> "Neal Becker" <ndbecker2@gmail.com> wrote in message news:ep3233$11ba$1@digitaldaemon.com...
>> My code compiles fine with gcc-4.1.1, but chokes on gcc-3.4.6.  I'm not
> sure what's going on here:
>>
>> /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp: In copy
> constructor `stlsoft::fixed_array_3d<T, A, P, R>::fixed_array_3d(const stlsoft::fixed_array_3d<T, A, P, R>&) [with T = double, A = std::allocator<double>, P = stlsoft::do_construction<double>, bool R = false]':
>> /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1838:
>>   instantiated from `typename stlsoft::fixed_array_4d<T, A, P,
> R>::dimension_element_type stlsoft::fixed_array_4d<T, A, P, R>::operator[](stlsoft::ss_size_t) [with T = double, A = std::allocator<double>, P = stlsoft::do_construction<double>, bool R = true]'
>> idma/turbo_dec_1_10_2.H:387:
>>   instantiated from `void turbo_dec_1_10<flt_t>::compute_gamma(const
> apriori_t&, const rec_enc_parity_t&, const rec_tail_t&, gamma_t&,
> gamma2_t&)
> [with apriori_t = stlsoft::fixed_array_1d<double, std::allocator<double>,
> stlsoft::do_initialisation_never,  true>, rec_enc_parity_t =
> stlsoft::fixed_array_2d<double, std::allocator<double>,
> stlsoft::do_construction<double>,  false>, rec_tail_t =
> stlsoft::fixed_array_1d<double, std::allocator<double>,
> stlsoft::do_construction<double>,  false>, gamma_t =
> stlsoft::fixed_array_3d<double, std::allocator<double>,
> stlsoft::do_construction<double>,  true>, gamma2_t =
> stlsoft::fixed_array_4d<double, std::allocator<double>,
> stlsoft::do_construction<double>,  true>, flt_t = double]'
>> idma/turbo_dec_1_10_2.H:342:
>>   instantiated from `void
> turbo_dec_1_10<flt_t>::turbo_constituent_dec(const apriori_t&, const rec_enc_parity_t&, const rec_tail_t&, info_extrinsic_t&, parity_extrinsic_t&, tail_extrinsic_t&) [with apriori_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_initialisation_never,  true>, rec_enc_parity_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, rec_tail_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, info_extrinsic_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>,  true>, parity_extrinsic_t = stlsoft::fixed_array_2d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, tail_extrinsic_t = stlsoft::fixed_array_1d<double, std::allocator<double>, stlsoft::do_construction<double>,  false>, flt_t = double]'
>> idma/turbo_dec_1_10_2.H:250:
>>    instantiated from `void turbo_dec_1_10<flt_t>::iter(const in_t&,
>>    flt_t)
> [with in_t = boost::numeric::ublas::vector<double, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, flt_t = double]'
>> idma/turbo_dec_1_10.cc:192:
>>    instantiated from here
>> /usr/local/src/stlsoft/include/stlsoft/containers/fixed_array.hpp:1441:
> error: creating array with size zero (`0')
>>
>> The line that triggered the error:
>>         gamma2[0][k][m][0] = gamma[k][m][1];
>>
>> I'm sorry, but I can't post the source for this.  Perhaps someone has
> encountered a similar problem?

January 23, 2007
"Neal Becker" <ndbecker2@gmail.com> wrote in message news:ep4vdu$end$1@digitaldaemon.com...
> Matthew Wilson wrote:
>
> > Try this patch.
> >
> > No guarantees ... ;-)
> >
> > If it works, I'll release a beta 44.
>
> Yes, it seems to compile now (at least).

Good.

Don't forget to let me know if it run.  :-)



January 23, 2007
"Neal Becker" <ndbecker2@gmail.com> wrote in message news:ep4v24$e9v$1@digitaldaemon.com...
> Matthew Wilson wrote:
>
> >
> > "Neal Becker" <ndbecker2@gmail.com> wrote in message news:ep3iho$1mp7$1@digitaldaemon.com...
> >> Matthew Wilson wrote:
> >>
> >> >
> >> > btw, did the fe.N mods fix your 64-bit build problem? If so, I'll try
> > and
> >> > get a new Pantheios release out asap.
> >> >
> >>
> >> Looks like it gets further.  Now stops here:
> >>
> > +   -c -Wall -pedantic -Wno-long-long -Wno-unused-value -Werror  -O1
> > -D_RE
> > ENTRANT  -D_DEBUG -UNDEBUG  -Dunix  -I../../include
> > -I"/usr/local/src/stlsof
> > t/include"    -o test_api.debug.o ../../test/test_api/test_api.cpp
> >> ../../test/test_api/test_api.cpp: In function
> > 'stlsoft::basic_shim_string<char, 64ul, false, std::allocator<char>, stlsoft::stlsoft_char_traits<char> > stlsoft::c_str_data_a(const Thingy&)':
> >> ../../test/test_api/test_api.cpp:142: error: cast from 'const Thingy*'
to
> > 'unsigned int' loses precision
> >> ../../test/test_api/test_api.cpp: In function 'std::string
> > Thingy_to_string(const Thingy*)':
> >> ../../test/test_api/test_api.cpp:168: error: cast from 'const Thingy**' to
> > 'unsigned int' loses precision
> >> make: *** [test_api.debug.o] Error 1
> >
> > Well, the good news is that we seem to be out of the libraries, and into the test programs (about which I'm less bothered).
> >
> > I'll check into it.
> >
> > A favour, if I may. Could you execute the following build targets on
your
> > 64-bit system:
> >     "make -f makefile.unix build.libs.core"
> >     "make -f makefile.unix build.libs.fe"
> >     "make -f makefile.unix build.libs.be"
> >     "make -f makefile.unix build.examples"
> >
> > and let me know which, if any, have any problems.
> >
>
> No problems.

Cool. Thanks