diff options
author | Jose E. Marchesi <jose.marchesi@oracle.com> | 2023-08-10 10:53:16 +0200 |
---|---|---|
committer | Jose E. Marchesi <jose.marchesi@oracle.com> | 2023-08-11 20:34:56 +0200 |
commit | 6103df1e4fae5192c507484b1d32f00c42c70b54 (patch) | |
tree | 2bad387074928099025ef17642ff8af1216c02ce /libgcc | |
parent | 38c00edd65c39b07166aa0913c79adb9bcac943c (diff) | |
download | gcc-6103df1e4fae5192c507484b1d32f00c42c70b54.zip gcc-6103df1e4fae5192c507484b1d32f00c42c70b54.tar.gz gcc-6103df1e4fae5192c507484b1d32f00c42c70b54.tar.bz2 |
bpf: allow exceeding max num of args in BPF when always_inline
BPF currently limits the number of registers used to pass arguments to
functions to five registers. There is a check for this at function
expansion time. However, if a function is guaranteed to be always
inlined (and its body never generated) by virtue of the always_inline
attribute, it can "receive" any number of arguments.
Tested in host x86_64-linux-gnu and target bpf-unknown-none.
gcc/ChangeLog
* config/bpf/bpf.cc (bpf_function_arg_advance): Do not complain
about too many arguments if function is always inlined.
gcc/testsuite/ChangeLog
* gcc.target/bpf/diag-funargs-inline-1.c: New test.
* gcc.target/bpf/diag-funargs.c: Adapt test.
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions