| // { dg-do compile } |
| // { dg-options "-fno-guess-branch-probability -fno-tree-pta -O1" } |
| |
| void *b, *c; |
| struct H { |
| virtual bool accept(const char *, unsigned long, int *, bool); |
| }; |
| char accept_bt[1], accept_cd[1]; |
| int accept_cb; |
| bool accept_cb_0; |
| class t : H { |
| bool accept(const char *, unsigned long bd, int *bg, bool) { |
| long bu = sizeof(int) + bd; |
| char *bw = bu > sizeof(accept_bt) ? new char : accept_bt, |
| *cf = bd ? new char : accept_cd; |
| __builtin___memcpy_chk(b, c, bd, 0); |
| if (bw != accept_bt) |
| delete bw; |
| bool ci = cj((int *)cf, bg), atran = bp && accept_cb_0; |
| atran &&ci &&cm(&accept_cb); |
| return ci; |
| } |
| bool cj(int *, int *); |
| bool cm(int *); |
| bool bp; |
| }; |
| void bj() { new t; } |