diff --git a/libnetutil/netutil.h b/libnetutil/netutil.h index 58fe71286..cad25454e 100644 --- a/libnetutil/netutil.h +++ b/libnetutil/netutil.h @@ -162,11 +162,15 @@ struct abstract_ip_hdr { u32 ipid; /* IPv4 IP ID or IPv6 flow label. */ }; -#ifdef WIN32 -__declspec(noreturn) +#if defined(__GNUC__) +#define NORETURN __attribute__((noreturn)) +#elif defined(_MSC_VER) +#define NORETURN __declspec((noreturn)) +#else +#define NORETURN #endif -void netutil_fatal(const char *str, ...) - __attribute__ ((noreturn)) + +NORETURN void netutil_fatal(const char *str, ...) __attribute__ ((format (printf, 1, 2))); int netutil_error(const char *str, ...) diff --git a/nbase/nbase.h b/nbase/nbase.h index 89ffc78a0..7a9909d39 100644 --- a/nbase/nbase.h +++ b/nbase/nbase.h @@ -371,6 +371,14 @@ extern "C" int vsnprintf (char *, size_t, const char *, va_list); #define inline __inline #endif +#if defined(__GNUC__) +#define NORETURN __attribute__((noreturn)) +#elif defined(_MSC_VER) +#define NORETURN __declspec((noreturn)) +#else +#define NORETURN +#endif + static inline int checked_fd_isset(int fd, fd_set *fds) { #ifndef WIN32 diff --git a/nbase/nbase_memalloc.c b/nbase/nbase_memalloc.c index 583d702e8..3bdf61339 100644 --- a/nbase/nbase_memalloc.c +++ b/nbase/nbase_memalloc.c @@ -129,11 +129,7 @@ #include "nbase.h" #include -#ifdef WIN32 -__declspec(noreturn) -#endif -static void fatal(char *fmt, ...) - __attribute__ ((noreturn)) +NORETURN static void fatal(char *fmt, ...) __attribute__ ((format (printf, 1, 2))); static void fatal(char *fmt, ...) { diff --git a/ncat/util.h b/ncat/util.h index d162380f3..e3a9963fe 100644 --- a/ncat/util.h +++ b/ncat/util.h @@ -168,11 +168,7 @@ do { \ void die(char *); -#ifdef WIN32 -__declspec(noreturn) -#endif -void bye(const char *, ...) - __attribute__ ((noreturn)) +NORETURN void bye(const char *, ...) __attribute__ ((format (printf, 1, 2))); /* zero out some memory, bzero() is deprecated */ diff --git a/nmap_error.h b/nmap_error.h index e67f6d216..3edbc1c1f 100644 --- a/nmap_error.h +++ b/nmap_error.h @@ -154,20 +154,12 @@ extern "C" { #endif -#ifdef WIN32 -__declspec(noreturn) -#endif -void fatal(const char *fmt, ...) - __attribute__ ((noreturn)) +NORETURN void fatal(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); void error(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); -#ifdef WIN32 -__declspec(noreturn) -#endif -void pfatal(const char *err, ...) - __attribute__ ((noreturn)) +NORETURN void pfatal(const char *err, ...) __attribute__ ((format (printf, 1, 2))); void gh_perror(const char *err, ...) __attribute__ ((format (printf, 1, 2))); diff --git a/nsock/src/error.h b/nsock/src/error.h index 0d29e063b..60a97bbff 100644 --- a/nsock/src/error.h +++ b/nsock/src/error.h @@ -74,19 +74,18 @@ #include #endif - -#ifdef WIN32 -__declspec(noreturn) +#if defined(__GNUC__) +#define NORETURN __attribute__((noreturn)) +#elif defined(_MSC_VER) +#define NORETURN __declspec((noreturn)) +#else +#define NORETURN #endif -void fatal(char *fmt, ...) - __attribute__ ((noreturn)) + +NORETURN void fatal(char *fmt, ...) __attribute__ ((format (printf, 1, 2))); -#ifdef WIN32 -__declspec(noreturn) -#endif -void pfatal(char *fmt, ...) - __attribute__ ((noreturn)) +NORETURN void pfatal(char *fmt, ...) __attribute__ ((format (printf, 1, 2))); #endif /* ERROR_H */