diff options
Diffstat (limited to 'common/alexcpt.h')
-rw-r--r-- | common/alexcpt.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/common/alexcpt.h b/common/alexcpt.h index ff09bab2..654520cb 100644 --- a/common/alexcpt.h +++ b/common/alexcpt.h @@ -31,6 +31,18 @@ public: #define START_API_FUNC try +#ifndef _MSC_VER #define END_API_FUNC catch(...) { std::terminate(); } +#else +/* VS 2015 complains that some of these catch statements are unreachable code, + * due to the function body not able to throw anything. While technically true, + * it's preferable to mark API functions just in case that ever changes, so + * silence that warning. + */ +#define END_API_FUNC __pragma(warning(push)) \ +__pragma(warning(disable : 4702)) \ +catch(...) { std::terminate(); } \ +__pragma(warning(pop)) +#endif #endif /* ALEXCPT_H */ |