aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Faust <david.faust@oracle.com>2024-03-07 09:23:38 -0800
committerDavid Faust <david.faust@oracle.com>2024-03-08 08:50:01 -0800
commit10c609191c4462133d6a4ea10a739167204f2cd3 (patch)
treee98180465a5206bd11c025936ba7e9f24e50b5ae
parent84fc8f4f3263d66503663bb784b58b49dd714dd9 (diff)
downloadgcc-10c609191c4462133d6a4ea10a739167204f2cd3.zip
gcc-10c609191c4462133d6a4ea10a739167204f2cd3.tar.gz
gcc-10c609191c4462133d6a4ea10a739167204f2cd3.tar.bz2
bpf: testsuite: fix unresolved test in memset-1.c
The test was trying to do too much by both checking for an error, and checking the resulting assembly. Of course, due to the error no asm was produced, so the scan-asm went unresolved. Split it into two separate tests to fix the issue. gcc/testsuite/ * gcc.target/bpf/memset-1.c: Move error test case to... * gcc.target/bpf/memset-2.c: ... here. New test.
-rw-r--r--gcc/testsuite/gcc.target/bpf/memset-1.c8
-rw-r--r--gcc/testsuite/gcc.target/bpf/memset-2.c22
2 files changed, 22 insertions, 8 deletions
diff --git a/gcc/testsuite/gcc.target/bpf/memset-1.c b/gcc/testsuite/gcc.target/bpf/memset-1.c
index 9e9f8ef..7c4768c 100644
--- a/gcc/testsuite/gcc.target/bpf/memset-1.c
+++ b/gcc/testsuite/gcc.target/bpf/memset-1.c
@@ -28,12 +28,4 @@ set_large (struct context *ctx)
__builtin_memset (dest, 0xfe, 130);
}
-void
-set_variable (struct context *ctx)
-{
- void *data = (void *)(long)ctx->data;
- char *dest = data;
- __builtin_memset (dest, 0xbc, ctx->data_meta); /* { dg-error "could not inline call" } */
-}
-
/* { dg-final { scan-assembler-times "call" 0 } } */
diff --git a/gcc/testsuite/gcc.target/bpf/memset-2.c b/gcc/testsuite/gcc.target/bpf/memset-2.c
new file mode 100644
index 0000000..0602a1a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/bpf/memset-2.c
@@ -0,0 +1,22 @@
+/* Test that we error if memset cannot be expanded inline. */
+
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+struct context {
+ unsigned int data;
+ unsigned int data_end;
+ unsigned int data_meta;
+ unsigned int ingress;
+ unsigned int queue_index;
+ unsigned int egress;
+};
+
+
+void
+set_variable (struct context *ctx)
+{
+ void *data = (void *)(long)ctx->data;
+ char *dest = data;
+ __builtin_memset (dest, 0xbc, ctx->data_meta); /* { dg-error "could not inline call" } */
+}