The purpose of this test is to make sure that constant propagation is
achieved with the proper optimization level, so a BPF call instruction
to a kernel helper is generated.  This patch updates the patch so it
also covers kernel helpers defined with constant static pointers.

The motivation for this patch is:

  
https://lore.kernel.org/bpf/20240127185031.29854-1-jose.march...@oracle.com/T/#u

Tested in bpf-unknown-none target x86_64-linux-gnu host.

gcc/testsuite/ChangeLog

        * gcc.target/bpf/helper-skb-ancestor-cgroup-id.c: Add constant
        version of kernel helper static pointer.
---
 gcc/testsuite/gcc.target/bpf/helper-skb-ancestor-cgroup-id.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/gcc.target/bpf/helper-skb-ancestor-cgroup-id.c 
b/gcc/testsuite/gcc.target/bpf/helper-skb-ancestor-cgroup-id.c
index 693f390b9bb..075dbe6f852 100644
--- a/gcc/testsuite/gcc.target/bpf/helper-skb-ancestor-cgroup-id.c
+++ b/gcc/testsuite/gcc.target/bpf/helper-skb-ancestor-cgroup-id.c
@@ -5,6 +5,7 @@
 
 struct __sk_buff;
 static uint64_t (*bpf_skb_ancestor_cgroup_id)(struct __sk_buff *skb, int 
ancestor_level) = (void *) 83;
+static uint64_t (* const const_bpf_skb_ancestor_cgroup_id)(struct __sk_buff 
*skb, int ancestor_level) = (void *) 84;
 
 void
 foo ()
@@ -13,7 +14,9 @@ foo ()
   void *skb;
   int ancestor_level;
 
-  ret = bpf_skb_ancestor_cgroup_id (skb, ancestor_level);
+  ret = bpf_skb_ancestor_cgroup_id (skb, ancestor_level)
+    + const_bpf_skb_ancestor_cgroup_id (skb, ancestor_level);
 }
 
 /* { dg-final { scan-assembler "call\t83" } } */
+/* { dg-final { scan-assembler "call\t84" } } */
-- 
2.30.2

Reply via email to