3 // { dg-additional-options "-Wno-return-type" }
5 // VRP jump threading will create additional __builtin___memcpy_chk calls that
6 // may be out of bounds.
7 // { dg-additional-options "-Wno-stringop-overflow" }
11 template <typename, typename> class d {};
12 template <typename e, typename f> bool operator!=(d<e, f>, d<e, f>);
33 virtual bool accept(const char *, unsigned long, p *, bool);
37 enum at { au, av, aw };
40 virtual void ay(const char *, int, const char *, r::at, const char *);
41 virtual bool az(const g &, unsigned = ax);
42 virtual bool ba(const int &, p *, bool);
43 void bb(char *bc, long bd, char *, long be) {
44 struct bf : public p {
47 accept(bc, bd, &bg, true);
54 template <class bk> class t : q {
55 bool accept(const char *, unsigned long bd, p *bg, bool) {
56 bool k(bp || bq), cl = false, err = false;
58 ay("", 1, __func__, r::au, "");
60 ay("", 6, __func__, r::av, "");
62 long bu = sizeof(int) + bd, ce = sizeof(L) + bd;
63 char *bw = bu > sizeof(bt) ? new char : bt,
64 *cf = ce > sizeof(cd) ? new char : cd;
65 __builtin___memcpy_chk(b, c, bd, 0);
68 u cb = *cc((int *)bw, true, by, &bz);
69 ay("", 1, __func__, r::aw, "");
72 __builtin___memcpy_chk(b, c, bd, 0);
74 bool ci = cj((L *)cf, bg);
75 bool atran = bq && bp && cb.ck;
76 if (atran && !ci && cm(&cb))
87 b = cc((int *)bw, false, by, &bz);
90 if (atran && bp && cx())
101 if (da.dc->am() > cs.dc->am() + cs.dd->am() + 1 && de(&da))
105 bool ba(const int &, p *, bool) {
112 bool az(const g &, unsigned) {
118 dj.bb(&dbuf, dl, &dbuf, dk);
138 u *cc(int *, bool, a *, int *);
139 bool cw(u *, a *, int);
164 ay("", 1087, __func__, r::au, "");