aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/zencore/trace.cpp1
-rw-r--r--thirdparty/tourist/analysis/include/analysis/analyzer.h4
2 files changed, 5 insertions, 0 deletions
diff --git a/src/zencore/trace.cpp b/src/zencore/trace.cpp
index 2714c5221..d7084bbd1 100644
--- a/src/zencore/trace.cpp
+++ b/src/zencore/trace.cpp
@@ -6,6 +6,7 @@
# include <zencore/zencore.h>
# include <zencore/commandline.h>
# include <zencore/string.h>
+# include <zencore/thread.h>
# include <zencore/logging.h>
# define TRACE_IMPLEMENT 1
diff --git a/thirdparty/tourist/analysis/include/analysis/analyzer.h b/thirdparty/tourist/analysis/include/analysis/analyzer.h
index 21d47ba5b..c79e1a7df 100644
--- a/thirdparty/tourist/analysis/include/analysis/analyzer.h
+++ b/thirdparty/tourist/analysis/include/analysis/analyzer.h
@@ -38,7 +38,11 @@ Subscription::Subscription(T* a, void (T::*sink)(const U&))
{
// analyzers can't have vtables
static_assert(sizeof(sink) == sizeof(Subscription::SinkType), "we're cheating");
+#if defined(_MSC_VER)
+ // Itanium ABI pointer-to-member-functions are always 2*sizeof(void*); the size
+ // check only holds under MSVC's single-inheritance PMF representation.
static_assert(sizeof(sink) == sizeof(void*), "we're cheating");
+#endif
}
//------------------------------------------------------------------------------