Opened 11 years ago

Closed 10 years ago

#6349 closed Bugs (fixed)

use of missing ::abort

Reported by: viboes Owned by: Emil Dotchevski
Milestone: To Be Determined Component: exception
Version: Boost Development Trunk Severity: Problem
Keywords: wince Cc: viboes

Description

The following tester seems to don't have ::abort

Test output: VeecoFTC - thread - test_futures / msvc-9.0~wm5~stlport5.2
Rev 76100 / Thu, 22 Dec 2011 05:40:08 +0000
Report Time: Mon, 2 Jan 2012 07:46:13 +0000
Compile [2011-12-23 13:43:44 UTC]: fail
 
    call "%BOOST_ROOT%/TestTools/VSVars32-VC9-WM5.bat" x86 >nul
cl /Zm800 -nologo @"D:\BoostRT\results\boost\bin.v2\libs\thread\test\test_futures.test\msvc-9.0~wm5~stlport5.2\debug\stdlib-stlport-5.2~evc9~arm\test_futures.obj.rsp"
 
test_futures.cpp
D:\BoostRT\boost\boost/exception/detail/exception_ptr.hpp(460) : error C2039: 'abort' : is not a member of 'stlpd_std'
D:\BoostRT\boost\boost/exception/detail/exception_ptr.hpp(460) : error C3861: 'abort': identifier not found

Is there something that can be done to work on this tester?

Attachments (1)

boost-exception-exception_ptr.hpp.3.patch (461 bytes ) - added by David Deakins 11 years ago.

Download all attachments as: .zip

Change History (11)

comment:1 by ulrich.eckhardt@…, 11 years ago

Keywords: wince added

Same problem here, using Boost 1.48. The target platform is MS Windows CE 6 with STLport 5.2 and MSVC 8.0 (VS 2005). There is a workaround in a different place already that simply checks

  #if defined(UNDER_CE)
    // some CE platforms don't define ::abort(), let alone std::abort()
    exit(-1);
  #else
    abort();
  #endif

I have found other places that use abort() to e.g. mark code as unreachable. They could use similar workarounds. I'm just in the process of migrating to 1.48 but I should be able to produce a patch for this.

See also bug #5213.

comment:2 by viboes, 11 years ago

Cc: viboes added
Type: Support RequestsBugs

Any new on this?

comment:3 by Ulrich Eckhardt <ulrich.eckhardt@…>, 11 years ago

Sorry, I've been distracted by different things, but it's still on my TODO list...

comment:4 by Emil Dotchevski, 11 years ago

Please check if trunk revision 77593 fixes the problem.

comment:5 by Ulrich Eckhardt <ulrich.eckhardt@…>, 11 years ago

No, r77593 doesn't help. Neither CE5 nor CE6 have an abort() function anywhere.

BTW: If you commit with "(refs #6349)" in the commit message, TRAC automatically makes a note in the according bug ticket, so you don't have to add one yourself. All subscribers of the ticket also get an automatic notification.

comment:6 by serggzz@…, 11 years ago

As I see this bug steel exists, https://svn.boost.org/trac/boost/search?q=std%3A%3Aabort&noquickjump=1&ticket=on

  • Does anybody know why assert.hpp is so often included after config.hpp? I'm intended to use BOOST_USER_CONFIG to figure this problem out but now it's impossible. Examples are:


<boost/ptr_container/ptr_vector.hpp> => <boost/ptr_container/ptr_sequence_adapter.hpp> => <boost/ptr_container/detail/reversible_ptr_container.hpp> => <boost/ptr_container/detail/throw_exception.hpp> => #include <boost/assert.hpp> #include <boost/config.hpp>
<boost/scoped_ptr.hpp> => <boost/smart_ptr/scoped_ptr.hpp> => the first include is #include <boost/assert.hpp> I think that <boost/config.hpp> must be the first include every time.

  • It's only my curiosity why there are no any guards in assert.hpp and it's intended?

comment:7 by Emil Dotchevski, 11 years ago

assert.hpp probably follows the design of assert.h, which lacks include guards so that it can be included multiple times within the same source file, with different combination of _DEBUG/NDEBUG defined.

by David Deakins, 11 years ago

comment:8 by David Deakins, 11 years ago

Hi Emil,

Since this issue with abort is disrupting a lot of test result reporting for Windows CE, do you mind if I apply the attached patch for this issue or would you like to do it yourself?

Thanks, -Dave

comment:9 by David Deakins, 10 years ago

Committed the patch. Will let the tests cycle and confirm that the issue is resolved.

comment:10 by David Deakins, 10 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.