From 4dd920a9aa5a46e6bb69d467c8afa39687621ed9 Mon Sep 17 00:00:00 2001 From: Jaap Keuter Date: Mon, 21 Feb 2011 21:33:54 +0000 Subject: [PATCH] From Roland Knall: WS_MSVC_NORETURN is undeclared under a non-Windows operating system, which breaks compilation in the files epan/except.c and dumpcap.c as well as any file including epan/except.h svn path=/trunk/; revision=36023 --- CMakeLists.txt | 3 +++ cmakeconfig.h.in | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 902c13a016..6cbc2a9c4d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -434,11 +434,14 @@ endif() if(WIN32) add_definitions(-D_NEED_VAR_IMPORT_) set(WS_VAR_IMPORT "__declspec(dllimport) extern") + set(WS_MSVC_NORETURN "__declspec(noreturn)") # Disable deprecation if(MSVC80 OR MSVC90) add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE) endif() +else() + set(WS_MSVC_NORETURN " ") endif() configure_file(${CMAKE_SOURCE_DIR}/cmakeconfig.h.in ${CMAKE_BINARY_DIR}/config.h) diff --git a/cmakeconfig.h.in b/cmakeconfig.h.in index d739c42174..720f46140e 100644 --- a/cmakeconfig.h.in +++ b/cmakeconfig.h.in @@ -354,6 +354,15 @@ dynamically-linked libraries */ #define WS_VAR_IMPORT @WS_VAR_IMPORT@ +/* Define WS_MSVC_NORETURN appropriately for declarations of routines that + never return (just like Charlie on the MTA). + + Note that MSVC++ expects __declspec(noreturn) to precede the function + name and GCC, as far as I know, expects __attribute__((noreturn)) to + follow the function name, so we need two different flavors of + noreturn tag. */ +#define WS_MSVC_NORETURN @WS_MSVC_NORETURN@ + /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a `char[]'. */ /* Note: not use in the code */