annotate gcc/testsuite/g++.dg/torture/pr65851.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // { dg-do compile }
kono
parents:
diff changeset
2 class A {
kono
parents:
diff changeset
3 virtual unsigned long write(const char *, unsigned long);
kono
parents:
diff changeset
4 };
kono
parents:
diff changeset
5 char *a;
kono
parents:
diff changeset
6 int b;
kono
parents:
diff changeset
7 bool c;
kono
parents:
diff changeset
8 char e[16];
kono
parents:
diff changeset
9 class B {
kono
parents:
diff changeset
10 public:
kono
parents:
diff changeset
11 void push_range(const char *);
kono
parents:
diff changeset
12 };
kono
parents:
diff changeset
13 class C : A {
kono
parents:
diff changeset
14 B m_string;
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 public:
kono
parents:
diff changeset
17 unsigned long write(const char *p1, unsigned long p2) {
kono
parents:
diff changeset
18 m_string.push_range(p1 + p2);
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
19 return 0;
111
kono
parents:
diff changeset
20 }
kono
parents:
diff changeset
21 };
kono
parents:
diff changeset
22 char *write_signed_decimal_backward(bool) {
kono
parents:
diff changeset
23 char *d = 0;
kono
parents:
diff changeset
24 if (b) {
kono
parents:
diff changeset
25 if (c)
kono
parents:
diff changeset
26 --a;
kono
parents:
diff changeset
27 d = a;
kono
parents:
diff changeset
28 }
kono
parents:
diff changeset
29 return d;
kono
parents:
diff changeset
30 }
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 template <typename TextOutputStreamType>
kono
parents:
diff changeset
33 void ostream_write(TextOutputStreamType &p1) {
kono
parents:
diff changeset
34 char *f = write_signed_decimal_backward(false);
kono
parents:
diff changeset
35 p1.write(f, e - f);
kono
parents:
diff changeset
36 }
kono
parents:
diff changeset
37
kono
parents:
diff changeset
38 void operator<<(C p1, int) { ostream_write(p1); }