|
Boost : |
From: Boris Gubenko (Boris.Gubenko_at_[hidden])
Date: 2006-09-07 19:10:06
> I really can't see anything wrong with it; the test passes on every
> other platform.
>
It does, including the very same machine with aCC6. In fact, with aCC6,
smart_ptr is all green.
Why is this failure a concern for 1.34? Is g++ on HP-UX ia64 a release
platform?
Boris
----- Original Message -----
From: "Peter Dimov" <pdimov_at_[hidden]>
To: <boost_at_[hidden]>
Cc: "Boris Gubenko" <Boris.Gubenko_at_[hidden]>
Sent: Thursday, September 07, 2006 7:02 PM
Subject: Re: [boost] [shared_Ptr] [1.34] URGENT: Outstanding
HP-UX/itaniumbug
> Boris Gubenko wrote:
>> It segfaults, with and without -O0:
>>
>> Program received signal SIGSEGV, Segmentation fault
>> si_code: 1 - SEGV_MAPERR - Address not mapped to object.
>> 0x408b831 in
>> boost::detail::sp_counted_impl_pd<n_report_2::foo*,n_report_2::deleter>::boost::detail::sp_counted_impl_pd<n_report_2::
>> foo*,n_report_2::deleter> (
>> this=0x40014c30, p=0x40014bd0, d={<No data fields>})
>> at sp_counted_impl.hpp:140
>
> The relevant portion of shared_ptr_test seems to be n_report_2, reproduced
> below; it seems that the fault is occuring at the very first line of
> test().
> I really can't see anything wrong with it; the test passes on every other
> platform.
>
> class foo
> {
> public:
>
> void setWeak(boost::shared_ptr<foo> s)
> {
> w = s;
> }
>
> private:
>
> boost::weak_ptr<foo> w;
> };
>
> class deleter
> {
> public:
>
> deleter(): lock(0)
> {
> }
>
> ~deleter()
> {
> BOOST_TEST(lock == 0);
> }
>
> void operator() (foo * p)
> {
> ++lock;
> delete p;
> --lock;
> }
>
> private:
>
> int lock;
> };
>
> void test()
> {
> boost::shared_ptr<foo> s(new foo, deleter());
> s->setWeak(s);
> s.reset();
> }
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>
>
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk