From: Jakub Jelinek Date: Mon, 3 Dec 2018 13:30:41 +0000 (+0100) Subject: re PR tree-optimization/71109 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=959ded615c23a9595c7965f9373c578d2cb4afa3;p=gcc.git re PR tree-optimization/71109 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "maybe_record_trace_start") PR tree-optimization/71109 * gcc.c-torture/compile/pr71109.c: New test. From-SVN: r266738 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index eae0dfa34f6..2032b88ab67 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 00000000000..f86ba60d78d --- /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; + } +}