aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorJose E. Marchesi <jose.marchesi@oracle.com>2023-11-22 15:32:17 +0100
committerJose E. Marchesi <jose.marchesi@oracle.com>2023-11-23 17:31:40 +0100
commit2eb833534c7e715c276658ecb810715e8718e5c3 (patch)
tree2fc1a1b44c4b67858c999014671fa3ca06899807 /libgcc
parentba0869323e1d45b1328b4cb723cb139a2e2146c3 (diff)
downloadgcc-2eb833534c7e715c276658ecb810715e8718e5c3.zip
gcc-2eb833534c7e715c276658ecb810715e8718e5c3.tar.gz
gcc-2eb833534c7e715c276658ecb810715e8718e5c3.tar.bz2
libgcc: mark __hardcfr_check_fail as always_inline
The function __hardcfr_check_fail in hardcfr.c is internal and static inline. It receives many arguments, which require more than five registers to be passed in bpf-none-unknown targets. BPF is limited to that number of registers to pass arguments, and therefore libgcc fails to build in that target. This patch marks the function with the always_inline attribute, fixing the bpf build. Tested in bpf-unknown-none target and x86_64-linux-gnu host. libgcc/ChangeLog: * hardcfr.c (__hardcfr_check_fail): Mark as always_inline.
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/hardcfr.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libgcc/hardcfr.c b/libgcc/hardcfr.c
index 25ff067..376a362 100644
--- a/libgcc/hardcfr.c
+++ b/libgcc/hardcfr.c
@@ -206,6 +206,10 @@ __hardcfr_debug_cfg (size_t const blocks,
enabled, it also forces __hardcfr_debug_cfg (above) to be compiled into an
out-of-line function, that could be called from a debugger.
*/
+
+#ifdef __BPF__
+__attribute__((__always_inline__))
+#endif
static inline void
__hardcfr_check_fail (size_t const blocks ATTRIBUTE_UNUSED,
vword const *const visited ATTRIBUTE_UNUSED,