From 26ca00eeedb01f9d5102586b76ae2a6e787111af Mon Sep 17 00:00:00 2001 From: Sam James Date: Fri, 13 Dec 2024 04:42:29 +0000 Subject: [PATCH] testsuite: torture: add LLVM testcase for DSE vs. -ftrivial-auto-var-init= This testcase came up in a recent LLVM bug report [0] for DSE vs -ftrivial-auto-var-init=. Add it to our testsuite given that area could do with better coverage. [0] https://github.com/llvm/llvm-project/issues/119646 gcc/testsuite/ChangeLog: * gcc.dg/torture/dse-trivial-auto-var-init.c: New test. Co-authored-by: Andrew Pinski --- .../gcc.dg/torture/dse-trivial-auto-var-init.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/torture/dse-trivial-auto-var-init.c diff --git a/gcc/testsuite/gcc.dg/torture/dse-trivial-auto-var-init.c b/gcc/testsuite/gcc.dg/torture/dse-trivial-auto-var-init.c new file mode 100644 index 00000000000..5a3d4c4e3ec --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/dse-trivial-auto-var-init.c @@ -0,0 +1,17 @@ +/* Testcase for LLVM bug: https://github.com/llvm/llvm-project/issues/119646 */ +/* { dg-do run } */ +/* { dg-additional-options "-ftrivial-auto-var-init=zero" } */ + +int b = 208; +[[gnu::noinline]] +void f(int *e, int a) { + *e = !!b; + if (a) + __builtin_trap(); +} +int main(void) { + b = 0; + f(&b, 0); + if (b != 0) + __builtin_trap(); +}