diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2018-03-12 13:33:38 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2018-03-12 06:33:38 -0700 |
commit | a7fea88ffbba4300a1ec0ab5f3bb03c9a45817f2 (patch) | |
tree | e65bbec10df184bcf67691144f4371b37604fb47 /gcc | |
parent | 3fe126afd1b2fb9177e419ecc64143afd9e20f15 (diff) | |
download | gcc-a7fea88ffbba4300a1ec0ab5f3bb03c9a45817f2.zip gcc-a7fea88ffbba4300a1ec0ab5f3bb03c9a45817f2.tar.gz gcc-a7fea88ffbba4300a1ec0ab5f3bb03c9a45817f2.tar.bz2 |
Add a testcase for PR 84821
This was introduced by r258390 and fixed by r258415.
* g++.dg/pr84821.C: New test.
From-SVN: r258449
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/pr84821.C | 55 |
2 files changed, 59 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c719306..5dead01 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2018-03-12 H.J. Lu <hongjiu.lu@intel.com> + * g++.dg/pr84821.C: New test. + +2018-03-12 H.J. Lu <hongjiu.lu@intel.com> + * gcc.dg/pr84799.c: New test. 2018-03-12 Richard Biener <rguenther@suse.de> diff --git a/gcc/testsuite/g++.dg/pr84821.C b/gcc/testsuite/g++.dg/pr84821.C new file mode 100644 index 0000000..39da367 --- /dev/null +++ b/gcc/testsuite/g++.dg/pr84821.C @@ -0,0 +1,55 @@ +// { dg-do compile } +// { dg-options "-O2" } +// { dg-additional-options "-fPIC" { target fpic } } + +typedef struct a *b; +struct a { + int c; + unsigned d[]; +}; +int e, f, g, i, l, m; +struct o { + long *h; + int c; + unsigned j; + int k; + long aa; +}; +inline void p(o *r) { r->c = g; } +int *n, *ab; +inline bool s(o *r) { + for (; r->aa == 0; r->aa = r->h[r->j]) + if (r->j >= r->c) + return false; + r->aa >>= 1; + for (; r->aa;) + r++; + *n = r->k; + return true; +} +class t { +public: + t(int); + operator b() { return q; } + b q; +}; +bool u, v, ac; +void fn3() { + long w, x; + o ad; + bool ae; + t af(i), ag(i); + for (p(&ad); s(&ad);) { + a *ah = af, *ai = ah, *aj = ag; + x = ai->d[e] >> f & 1; + ae = x; + ai = aj; + w = ai->d[e] >> f & 1; + ac = w; + if (v && u && w && x) + ab[l] = ++m; + u = x; + } + for (;;) + ; +} |