aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrent Cook <busterb@gmail.com>2019-02-09 09:03:13 -0600
committerBrent Cook <busterb@gmail.com>2019-02-09 09:09:36 -0600
commit535246269d4a7d8338320f8e6666ca887718c5d0 (patch)
treefd55a3e75b39971bdbf00faba9bafddb83b885d2
parent5535242ec1dc9bfcbef588f890b32201fcfc4a64 (diff)
downloadportable-535246269d4a7d8338320f8e6666ca887718c5d0.tar.gz
portable-535246269d4a7d8338320f8e6666ca887718c5d0.tar.bz2
portable-535246269d4a7d8338320f8e6666ca887718c5d0.zip
add __dead__ annotation support
-rw-r--r--CMakeLists.txt1
-rw-r--r--include/compat/sys/types.h8
-rw-r--r--m4/check-os-options.m41
3 files changed, 10 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4d54ada..a6a7554 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -49,6 +49,7 @@ endif()
49 49
50if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD") 50if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
51 add_definitions(-DHAVE_ATTRIBUTE__BOUNDED__) 51 add_definitions(-DHAVE_ATTRIBUTE__BOUNDED__)
52 add_definitions(-DHAVE_ATTRIBUTE__DEAD__)
52endif() 53endif()
53 54
54if(CMAKE_SYSTEM_NAME MATCHES "Linux") 55if(CMAKE_SYSTEM_NAME MATCHES "Linux")
diff --git a/include/compat/sys/types.h b/include/compat/sys/types.h
index dec09e3..4967843 100644
--- a/include/compat/sys/types.h
+++ b/include/compat/sys/types.h
@@ -49,6 +49,14 @@ typedef SSIZE_T ssize_t;
49# define __bounded__(x, y, z) 49# define __bounded__(x, y, z)
50#endif 50#endif
51 51
52#if !defined(HAVE_ATTRIBUTE__DEAD) && !defined(__dead)
53#ifdef _MSC_VER
54#define __dead __declspec(noreturn)
55#else
56#define __dead __attribute__((__noreturn__))
57#endif
58#endif
59
52#ifdef _WIN32 60#ifdef _WIN32
53#define __warn_references(sym,msg) 61#define __warn_references(sym,msg)
54#else 62#else
diff --git a/m4/check-os-options.m4 b/m4/check-os-options.m4
index 445bd74..84116a2 100644
--- a/m4/check-os-options.m4
+++ b/m4/check-os-options.m4
@@ -98,6 +98,7 @@ char buf[1]; getentropy(buf, 1);
98 HOST_OS=openbsd 98 HOST_OS=openbsd
99 HOST_ABI=elf 99 HOST_ABI=elf
100 AC_DEFINE([HAVE_ATTRIBUTE__BOUNDED__], [1], [OpenBSD gcc has bounded]) 100 AC_DEFINE([HAVE_ATTRIBUTE__BOUNDED__], [1], [OpenBSD gcc has bounded])
101 AC_DEFINE([HAVE_ATTRIBUTE__DEAD], [1], [OpenBSD gcc has __dead])
101 ;; 102 ;;
102 *mingw*) 103 *mingw*)
103 HOST_OS=win 104 HOST_OS=win