Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Don't inline ~xbt_ex.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 4 Sep 2017 20:44:04 +0000 (22:44 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 4 Sep 2017 20:44:27 +0000 (22:44 +0200)
Otherwise, xbt_ex is also defined in libsimgrid-java and some tests are broken
with clang/libc++/freebsd.

Thanks Gabriel if this works!

include/xbt/ex.hpp
src/xbt/ex.cpp

index efd8eee..7e64973 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2005-2015. The SimGrid Team.
+/* Copyright (c) 2005-2017. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /*  Copyright (c) 2002-2004 Ralf S. Engelschall <rse@engelschall.com>       */
@@ -79,7 +79,7 @@ struct XBT_PUBLIC() xbt_ex :
     simgrid::xbt::WithContextException(throwpoint, simgrid::xbt::backtrace())
   {}
 
-  ~xbt_ex() = default;
+  ~xbt_ex();
 
   /** Category (what went wrong) */
   xbt_errcat_t category = unknown_error;
index 50a97f1..f609b1d 100644 (file)
 
 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);