diff --git a/src/misc/pv/epicsException.h b/src/misc/pv/epicsException.h index 68c9903..9e7c4f8 100644 --- a/src/misc/pv/epicsException.h +++ b/src/misc/pv/epicsException.h @@ -181,7 +181,7 @@ do { \ #define PRINT_EXCEPTION(EI) PRINT_EXCEPTION2(EI,stderr) -#ifndef __GNUC__ +#if !defined(__GNUC__) || __GNUC__ < 4 # define SHOW_EXCEPTION(EI) ::epics::pvData::detail::showException(EI) #else # define SHOW_EXCEPTION(EI) \ diff --git a/src/misc/pv/reftrack.h b/src/misc/pv/reftrack.h index 5d65e84..9257354 100644 --- a/src/misc/pv/reftrack.h +++ b/src/misc/pv/reftrack.h @@ -110,7 +110,7 @@ class epicsShareClass RefMonitor Impl *impl; public: RefMonitor(); - ~RefMonitor(); + virtual ~RefMonitor(); void start(double period=10.0); void stop(); diff --git a/src/misc/pv/templateMeta.h b/src/misc/pv/templateMeta.h index 20323a4..bfdf036 100644 --- a/src/misc/pv/templateMeta.h +++ b/src/misc/pv/templateMeta.h @@ -10,9 +10,9 @@ // gently nudge the compiler to inline our wrappers // Warning: Only use this when the template body is *small*. // You have been warned! -#if defined(__MINGW32__) +#if defined(__MINGW32__) # define FORCE_INLINE inline -#elif defined(__GNUC__) && __GNUC__>=3 +#elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 402) # define FORCE_INLINE __attribute__((always_inline)) inline #elif defined(_MSC_VER) # define FORCE_INLINE __forceinline