diff options
author | Jeff Law <law@redhat.com> | 2019-07-16 08:57:51 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2019-07-16 08:57:51 -0600 |
commit | f615b74e95263a697cfe4c8e5f6909db7243d589 (patch) | |
tree | 478efd03435767c9b5aa392c0913170fd0106765 /gcc | |
parent | f0593c53f3684f82b29f96b43393f5f39e890fed (diff) | |
download | gcc-f615b74e95263a697cfe4c8e5f6909db7243d589.zip gcc-f615b74e95263a697cfe4c8e5f6909db7243d589.tar.gz gcc-f615b74e95263a697cfe4c8e5f6909db7243d589.tar.bz2 |
re PR rtl-optimization/91173 (ICE: in int_mode_for_mode, at stor-layout.c:403)
PR rtl-optimization/91173
* g++.dg/pr91173.C: New test.
From-SVN: r273531
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/pr91173.C | 45 |
2 files changed, 50 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fc0b129..23d8c77 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-07-16 Jeff Law <law@redhat.com> + + PR rtl-optimization/91173 + * g++.dg/pr91173.C: New test. + 2019-07-16 Wilco Dijkstra <wdijkstr@arm.com> PR target/89190 diff --git a/gcc/testsuite/g++.dg/pr91173.C b/gcc/testsuite/g++.dg/pr91173.C new file mode 100644 index 0000000..b8fb41b --- /dev/null +++ b/gcc/testsuite/g++.dg/pr91173.C @@ -0,0 +1,45 @@ +class a { + int b; + void *c; + +public: + bool aa(); + int &ab() { + if (aa()) { + void *d(c); + return static_cast<int *>(d)[b]; + } + return *(int *)0; + } +}; +typedef enum {E} e; +class f : public a { + int g; + +public: + int ac() { + if (g) + return 1; + return ac(); + } +}; +int *ad; +struct h { + static int ae(e, int *m) { + f ag; + int *ah; + while (!0) { + ad = &ag.ab(); + ah = ad + ag.ac(); + while (ad < ah) + *m = *ad++; + } + } +}; +template <class, class> +void i(int *, int *, int, int *, e n, int *o) { + h::ae(n, o); +} +int aq, ar, as, at, au; +void aw() { i<int, bool>(&aq, &ar, as, &at, (e)0, &au); } + |