summaryrefslogtreecommitdiffstats
path: root/Macros.h
diff options
context:
space:
mode:
authorChristian Göttsche <cgzones@googlemail.com>2023-02-04 17:34:08 +0100
committerBenBE <BenBE@geshi.org>2023-02-18 17:07:17 +0100
commit8387df1551f18b90b3936c7cbb311416c3db8032 (patch)
tree2cc511d578c0a2ea01226cc6b7f0d14e37294954 /Macros.h
parentf60d4057573ecb6a5021e754f54983c709977c62 (diff)
Annotate functions with access attribute
Supported by GCC since version 10.
Diffstat (limited to 'Macros.h')
-rw-r--r--Macros.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/Macros.h b/Macros.h
index 5e8891a4..0f95347b 100644
--- a/Macros.h
+++ b/Macros.h
@@ -61,6 +61,27 @@
#endif /* HAVE_ATTR_ALLOC_SIZE */
+#ifdef HAVE_ATTR_ACCESS
+
+#define ATTR_ACCESS2(mode, ref) __attribute__((access (mode, ref)))
+#define ATTR_ACCESS3(mode, ref, size) __attribute__((access (mode, ref, size)))
+
+#else
+
+#define ATTR_ACCESS2(mode, ref)
+#define ATTR_ACCESS3(mode, ref, size)
+
+#endif /* HAVE_ATTR_ACCESS */
+
+#define ATTR_ACCESS2_R(ref) ATTR_ACCESS2(read_only, ref)
+#define ATTR_ACCESS3_R(ref, size) ATTR_ACCESS3(read_only, ref, size)
+
+#define ATTR_ACCESS2_RW(ref) ATTR_ACCESS2(read_write, ref)
+#define ATTR_ACCESS3_RW(ref, size) ATTR_ACCESS3(read_write, ref, size)
+
+#define ATTR_ACCESS2_W(ref) ATTR_ACCESS2(write_only, ref)
+#define ATTR_ACCESS3_W(ref, size) ATTR_ACCESS3(write_only, ref, size)
+
// ignore casts discarding const specifier, e.g.
// const char [] -> char * / void *
// const char *[2]' -> char *const *

© 2014-2024 Faster IT GmbH | imprint | privacy policy