X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b83ad9c88af4715987015ddc91ac93ad749df428..1873a02acdc52506c010f43b4c78a8b8400dc0de:/src/xbt/ex.cpp diff --git a/src/xbt/ex.cpp b/src/xbt/ex.cpp index b0f5564aa7..f167d6d3b6 100644 --- a/src/xbt/ex.cpp +++ b/src/xbt/ex.cpp @@ -41,8 +41,8 @@ /* The extensions made for the SimGrid project can either be distributed */ /* under the same license, or under the LGPL v2.1 */ -#include -#include +#include +#include #include #include "src/internal_config.h" /* execinfo when available */ @@ -52,13 +52,16 @@ #include "xbt/log.hpp" #include "xbt/backtrace.h" #include "xbt/backtrace.hpp" -#include "xbt/str.h" #include "src/xbt_modinter.h" /* backtrace initialization headers */ #include "simgrid/sg_config.h" /* Configuration mechanism of SimGrid */ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_ex, xbt, "Exception mechanism"); +// Don't define ~xbt_ex() in ex.hpp. It is defined here to ensure that there is an unique definition of xt_ex in +// libsimgrid, but not in libsimgrid-java. Otherwise, sone tests are broken (seen with clang/libc++ on freebsd). +xbt_ex::~xbt_ex() = default; + void _xbt_throw(char* message, xbt_errcat_t errcat, int value, const char* file, int line, const char* func) { xbt_ex e(simgrid::xbt::ThrowPoint(file, line, func), message); @@ -113,8 +116,8 @@ const char *xbt_ex_catname(xbt_errcat_t cat) } #ifdef SIMGRID_TEST -#include #include "xbt/ex.h" +#include #include XBT_TEST_SUITE("xbt_ex", "Exception Handling"); @@ -227,10 +230,10 @@ XBT_TEST_UNIT("cleanup", test_cleanup, "cleanup handling") c = 1; if (v1 != 5678) xbt_test_fail("v1 = %d (!= 5678)", v1); - if (!(ex.category == 1 && ex.value == 2 && !strcmp(ex.what(), "blah"))) + if (not(ex.category == 1 && ex.value == 2 && not strcmp(ex.what(), "blah"))) xbt_test_fail("unexpected exception contents"); } - if (!c) + if (not c) xbt_test_fail("xbt_ex_free not executed"); } #endif /* SIMGRID_TEST */