annotate gcc/testsuite/g++.dg/torture/pr68852.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
kono
parents:
diff changeset
3 struct A {
kono
parents:
diff changeset
4 double x, y, z, w;
kono
parents:
diff changeset
5 A() {}
kono
parents:
diff changeset
6 A(double, double p2, double p3, double) : y(p2), z(p3) {}
kono
parents:
diff changeset
7 void m_fn1();
kono
parents:
diff changeset
8 };
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 struct B {
kono
parents:
diff changeset
11 double x, y;
kono
parents:
diff changeset
12 };
kono
parents:
diff changeset
13 struct D : A {
kono
parents:
diff changeset
14 D() {}
kono
parents:
diff changeset
15 D(double p1, double p2, double p3, double p4) : A(p1, p2, p3, p4) {}
kono
parents:
diff changeset
16 };
kono
parents:
diff changeset
17
kono
parents:
diff changeset
18 class C {
kono
parents:
diff changeset
19 public:
kono
parents:
diff changeset
20 float _11, _12, _13, _14;
kono
parents:
diff changeset
21 float _21, _22, _23, _24;
kono
parents:
diff changeset
22 float _31, _32, _33, _34;
kono
parents:
diff changeset
23 float _41, _42, _43, _44;
kono
parents:
diff changeset
24 D m_fn2(B p1) {
kono
parents:
diff changeset
25 double z(p1.x + _43);
kono
parents:
diff changeset
26 return *this * D(p1.x, p1.y, z, 1);
kono
parents:
diff changeset
27 }
kono
parents:
diff changeset
28 int ProjectRectBounds_next;
kono
parents:
diff changeset
29 B __trans_tmp_3;
kono
parents:
diff changeset
30 int m_fn3(int) {
kono
parents:
diff changeset
31 B a, b;
kono
parents:
diff changeset
32 D c[1];
kono
parents:
diff changeset
33 b = __trans_tmp_3;
kono
parents:
diff changeset
34 c[2] = m_fn2(b);
kono
parents:
diff changeset
35 c[3] = m_fn2(a);
kono
parents:
diff changeset
36 c[ProjectRectBounds_next].m_fn1();
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
37 return 0;
111
kono
parents:
diff changeset
38 }
kono
parents:
diff changeset
39 D operator*(D p1) {
kono
parents:
diff changeset
40 D d;
kono
parents:
diff changeset
41 d.x = p1.x * _11 + p1.y * _21 + p1.z * _31 + _41;
kono
parents:
diff changeset
42 d.y = p1.x * _12 + p1.y * _22 + p1.z * _32 + _42;
kono
parents:
diff changeset
43 d.z = p1.x * _13 + p1.y * _23 + p1.z * _33 + _43;
kono
parents:
diff changeset
44 d.w = p1.x * _14 + p1.y * _24 + p1.z * _34 + _44;
kono
parents:
diff changeset
45 return d;
kono
parents:
diff changeset
46 }
kono
parents:
diff changeset
47 };
kono
parents:
diff changeset
48
kono
parents:
diff changeset
49 void fn1() {
kono
parents:
diff changeset
50 C e;
kono
parents:
diff changeset
51 int f = e.m_fn3(f);
kono
parents:
diff changeset
52 }