From 7f8a8b158fbdbcdc466c5b92b59fca0cd865c14c Mon Sep 17 00:00:00 2001 From: jakub Date: Mon, 3 Dec 2018 13:30:41 +0000 Subject: [PATCH] PR tree-optimization/71109 * gcc.c-torture/compile/pr71109.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266738 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 3 ++ gcc/testsuite/gcc.c-torture/compile/pr71109.c | 31 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 gcc/testsuite/gcc.c-torture/compile/pr71109.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index eae0dfa34f68..2032b88ab673 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2018-12-03 Jakub Jelinek + PR tree-optimization/71109 + * gcc.c-torture/compile/pr71109.c: New test. + PR target/88287 * g++.target/aarch64/sve/vcond_1.C: Adjust for comparison canonicalization. diff --git a/gcc/testsuite/gcc.c-torture/compile/pr71109.c b/gcc/testsuite/gcc.c-torture/compile/pr71109.c new file mode 100644 index 000000000000..f86ba60d78de --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr71109.c @@ -0,0 +1,31 @@ +/* PR tree-optimization/71109 */ + +struct S { int g, h; signed char i; int j; signed char k; int l[4]; } a, c; +struct T { signed char g; } e; +int *b, d; +static void foo (); + +void +bar (void) +{ + while (d) + { + int k; + struct T f[3]; + foo (bar, a); + for (k = 0;; k++) + f[k] = e; + } +} + +static inline void +foo (int x, struct S y, struct T z) +{ + for (z.g = 2; z.g; z.g--) + { + c = a = y; + *b |= 6; + if (y.g) + break; + } +} -- 2.47.2