aboutsummaryrefslogtreecommitdiff
path: root/include/sys
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-12-23 05:11:58 +0800
committerH.J. Lu <hjl.tools@gmail.com>2024-12-23 06:28:55 +0800
commita2b0ff98a0d44259cc5f6bd7d3a3676ae9f8996a (patch)
tree7816983cdeea6e6c32dd005c76da785811ea3047 /include/sys
parent3fb895ac88e99201573352b1abc18db4340ecede (diff)
downloadglibc-a2b0ff98a0d44259cc5f6bd7d3a3676ae9f8996a.zip
glibc-a2b0ff98a0d44259cc5f6bd7d3a3676ae9f8996a.tar.gz
glibc-a2b0ff98a0d44259cc5f6bd7d3a3676ae9f8996a.tar.bz2
include/sys/cdefs.h: Add __attribute_optimization_barrier__
Add __attribute_optimization_barrier__ to disable inlining and cloning on a function. For Clang, expand it to __attribute__ ((optnone)) Otherwise, expand it to __attribute__ ((noinline, clone)) Co-Authored-By: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'include/sys')
-rw-r--r--include/sys/cdefs.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/sys/cdefs.h b/include/sys/cdefs.h
index b84ad34..a676f75 100644
--- a/include/sys/cdefs.h
+++ b/include/sys/cdefs.h
@@ -56,4 +56,11 @@ rtld_hidden_proto (__chk_fail)
#endif /* !defined _ISOMAC */
+/* Prevents a function from being considered for inlining and cloning. */
+#ifdef __clang__
+# define __attribute_optimization_barrier__ __attribute__ ((optnone))
+#else
+# define __attribute_optimization_barrier__ __attribute__ ((noinline, noclone))
+#endif
+
#endif