chiark
/
gitweb
/
~mdw
/
mLib
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
@@@ all the mess ever
[mLib]
/
utils
/
macros.h
diff --git
a/utils/macros.h
b/utils/macros.h
index 73230bd23cb524a9459fb4df0f329250886dfa0b..954ed0c7ed8227f130cf0a202f9c4a034d52d824 100644
(file)
--- a/
utils/macros.h
+++ b/
utils/macros.h
@@
-110,6
+110,12
@@
# define EXECL_LIKE(ntrail) __attribute__((__sentinel__(ntrail)))
#endif
# define EXECL_LIKE(ntrail) __attribute__((__sentinel__(ntrail)))
#endif
+#if GCC_VERSION_P(2, 7)
+# define LAUNDER(x) \
+ ({ __typeof__(x) _y; __asm__("" : "=g"(_y) : "0"(x)); _y; })
+# define RELAX do __asm__ __volatile__("" ::: "memory"); while (0)
+#endif
+
#if CLANG_VERSION_P(3, 3)
# define MLIB__PRAGMA_HACK(x) _Pragma(#x)
#if CLANG_VERSION_P(3, 3)
# define MLIB__PRAGMA_HACK(x) _Pragma(#x)
@@
-233,6
+239,14
@@
# define MUST_CHECK
#endif
# define MUST_CHECK
#endif
+#ifndef LAUNDER
+# define LAUNDER
+#endif
+
+#ifndef RELAX
+# define RELAX
+#endif
+
#ifndef GCC_WARNING
# define GCC_WARNING(warn)
#endif
#ifndef GCC_WARNING
# define GCC_WARNING(warn)
#endif